Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]implode w zapytaniu sql
Larges
post
Post #1





Grupa: Zarejestrowani
Postów: 333
Pomógł: 16
Dołączył: 13.05.2008
Skąd: Łódź

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


Witam, zmienne nie będące typu int należy oplatać w cudzysłów, nie bardzo potrafię to uczynić z następującą linijką kodu.

  1. $sql = "SELECT " . implode(",", $tablica) . " FROM $tabela";


Dzięki za pomoc.
Go to the top of the page
+Quote Post
zzeus
post
Post #2





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Może się mylę, ale w WHERE nie trzeba "oplatać" nazw pól w cudzysłów, jak już to w warunku WHERE
Go to the top of the page
+Quote Post
franki01
post
Post #3





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


Troszkę kreatywności.
  1. $sql = "SELECT `" . implode("`,`", $tablica) . "` FROM $tabela";

Zakładam, że o to chodzi.
Go to the top of the page
+Quote Post
bmL
post
Post #4





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Zakładam że pewnie nie o to (IMG:style_emoticons/default/winksmiley.jpg) bo skoro imploduje je używając przecinka to są to nazwy kolejnych pół docelowe zapytanie wyglądało by tak:
  1. SELECT `pole1, pole2, pole3, pole4` ...

a powinno być oczywiście tak
  1. SELECT `pole1`, `pole2`, `pole3`,`pole4`


Chociaż te cudzysłowy nie są konieczne jeżeli nazwy pól nie są zarezerwowane dla składni języka SQL np. pole może się nazywać "where" wtedy trzeba je opleść cudzysłowami.

Zarzucę gotowym kodem, pisany z palca więc nie gwarantuję że zadziała (IMG:style_emoticons/default/biggrin.gif)
  1. function oplec (&$element1, $klucz, $znak)
  2. {
  3. $element1 = $znak.$element1.$znak;
  4. }
  5.  
  6. array_walk ($tablica, 'oplec', '`');
  7.  
  8. $sql = "SELECT " . implode(",", $tablica) . " FROM $tabela";


Ten post edytował bmL 5.09.2009, 00:47:03
Go to the top of the page
+Quote Post
franki01
post
Post #5





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


Cytat(bmL @ 5.09.2009, 01:45:41 ) *
Zakładam że pewnie nie o to (IMG:style_emoticons/default/winksmiley.jpg) bo skoro imploduje je używając przecinka to są to nazwy kolejnych pół docelowe zapytanie wyglądało by tak:
  1. SELECT `pole1, pole2, pole3, pole4` ...

a powinno być oczywiście tak
  1. SELECT `pole1`, `pole2`, `pole3`,`pole4`


Chociaż te cudzysłowy nie są konieczne jeżeli nazwy pól nie są zarezerwowane dla składni języka SQL np. pole może się nazywać "where" wtedy trzeba je opleść cudzysłowami.

Zarzucę gotowym kodem, pisany z palca więc nie gwarantuję że zadziała (IMG:style_emoticons/default/biggrin.gif)
  1. function oplec (&$element1, $klucz, $znak)
  2. {
  3. $element1 = $znak.$element1.$znak;
  4. }
  5.  
  6. array_walk ($tablica, 'oplec', '`');
  7.  
  8. $sql = "SELECT " . implode(",", $tablica) . " FROM $tabela";

Co za głupoty piszesz. Przypatrz się jeszcze raz mojemu przykładowi.
Go to the top of the page
+Quote Post
bmL
post
Post #6





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Faktycznie nie zauważyłem cudzysłowów obok oplatających przecinek. Twoje rozwiązanie jest zdecydowanie lepsze od mojego.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 07:11