Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sprawdzanie ostatniego klucza
xxdrago
post 19.08.2013, 12:45:34
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Witam, mam taki skrypt:

  1. $data = array(
  2. 'nazwa' => '212',
  3. 'wartosc' => 'wartosc',
  4. );
  5.  
  6.  
  7. foreach ($data as $nazwa => $wartosc) {
  8. echo '`' . $nazwa . '`,';
  9. }


Przykład zwraca: `nazwa`,`wartosc`, . Potrzebowałbym zrobić coś takiego, że jeżeli jest ostatni klucz w tablicy,żeby nie dodawało przecinka i zamykało nawiasem dla przykładu w tym wypadku miało by to wyglądać tak:

`nazwa`,`wartosc`) nie mam mogę znaleźć odpowiedniej funkcji aby to zrobić...


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
kallosz
post 19.08.2013, 12:47:01
Post #2





Grupa: Zarejestrowani
Postów: 272
Pomógł: 19
Dołączył: 29.07.2006

Ostrzeżenie: (10%)
X----


może łatwiej będzie ci użyć array_keys i implode

  1. implode(', ', array_keys($data));


ewentualnie musisz zrobić zliczenie za pomoca count

Ten post edytował kallosz 19.08.2013, 12:49:46


--------------------
Pomogłem ?? Kliknij pomógł :) || kallosz.pl
-----------------------------------
Go to the top of the page
+Quote Post
xxdrago
post 19.08.2013, 13:33:55
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


Mam coś takiego:

  1. $data = array(
  2. 'nazwa' => '212',
  3. 'wartosc' => '435',
  4. );
  5.  
  6.  
  7. $MySQL->add_record('123', $data);


  1. public function add_record($tabela, $data) {
  2. // INSERT INTO `cms_v2`.`config` (`nazwa`, `wartosc`) VALUES ('1', '1');
  3.  
  4. $klucze = implode(', ', array_keys($data));
  5. $wartosci = implode(', ', array_values($data));
  6.  
  7.  
  8. $stmt = $this->Connect->prepare('INSERT INTO `cms_v2`.`config` (' . $klucze . ') VALUES(' . $wartosci . ')'); // 1
  9.  
  10. foreach ($data as $nazwa => $wartosc) {
  11. $stmt->bindValue(':'.$nazwa, $wartosc, PDO::PARAM_STR); // 2
  12. }
  13.  
  14.  
  15. $ilosc = $stmt->execute(); // 3
  16. }



Potrzebowałbym, żeby każda wartość była bindowana:



VALUES(:nazwa,:wartosc), mówiąć po ludzku, nie mam pomysłu jak dodać : do tych wartości, żeby było to w miarę estetycznie smile.gif


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
BigPig
post 19.08.2013, 13:37:26
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 9
Dołączył: 18.06.2013
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Hej, wymyśliłem takie coś:

  1.  
  2. $data = array(
  3. 'nazwa' => '212',
  4. 'wartosc' => 'wartosc',
  5. );
  6. $data = array_flip($data);
  7. $ostatni = end($data);
  8. $data = array_flip($data);
  9.  
  10. foreach ($data as $nazwa => $wartosc)
  11. {
  12. if($nazwa != $ostatni)
  13. echo '`' . $nazwa . '`,';
  14. else
  15. echo '`' . $nazwa . '`)';
  16. }
  17.  



Działa jak należy, aczkolwiek jestem początkującym i pewnie da się to jakoś ładniej zrobić smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:41