Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]IF w IFie nie wiem co robię źle
Forum PHP.pl > Forum > Przedszkole
matysek83
Chciałem posortować rosnąco i malejąco według zmiennej $nazwa_ksiazki. Pokazuje mi błąd w pierwszej linii. Proszę o pomoc.

  1. "IF ('$nazwa_ksiazki' = 'ascnazwa', (SELECT * from tabelabiblioteka ORDER BY nazwa ASC LIMIT 10 OFFSET $i),
  2. IF ('$nazwa_ksiazki' = 'descnazwa', (SELECT * from tabelabiblioteka ORDER BY nazwa DESC LIMIT 10 OFFSET $i),
  3. (SELECT * from tabelabiblioteka LIMIT 10 OFFSET $i))
  4. "
MESSIAH :)
A co ów błąd mówi?
matysek83
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF (ascnazwa = 'ascnazwa', (SELECT * from tabelabiblioteka ORDER BY nazwa ASC LI' at line 1

Nie jestem pewny czy zmienna może tam być
kapslokk
Jak wygląda całe zapytanie?
@edit
Oh. To co jest w 1 poście to chyba jest całe zapytanie. Jeżeli tak, to nie da się tego zrobić w ten sposób. IF'a używa się np. w selectach SELECT IF(1==2, 'rowny','nie rowny').

https://dev.mysql.com/doc/refman/5.1/en/con...-functions.html

W Twoim przypadku chyba latwiej bedzie zrobic to na poziomie PHP :
  1. $query = "SELECT * from tabelabiblioteka ORDER BY nazwa ".($nazwa_ksiazki == 'descnazwa' ? "DESC" : "ASC") ;
matysek83
Dzieki kapslokk tak zrobiłem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.