Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql] sortowanie wyników na podstawie 2 selectów
Forum PHP.pl > Forum > Bazy danych > MySQL
HBK
Mam dwa pola select w jednym kategorie w drugim typy

Domyślenie wyświetlają się wszystkie wartości z bazy, teraz np. chcę sobie zawęzić wyniki do odpowiedniej kategorii wybieram z listy "Kat. 5"

lista.php?co=sort&kategoria=5&typ=0

i nic się nie wyświetla mimo że jest sporo rekordów tej kategorii

odwrotnie byłoby tak samo wpierw wybrałbym typ 3

lista.php?co=sort&kategoria=0&typ=3

i nic się nie wyświetla


Dopiero jak wceluje w kategorię i typ to się coś wyświetli np.:

lista.php?co=sort&kategoria=5&typ=3



Jak zbudować to zapytanie?

  1.  
  2. $sql_s = 'SELECT * FROM lista WHERE kat = '.$_GET[kategoria].' AND typ = '.$_GET[typ].' AND waznosc >now() AND on_off = 1 ORDER BY id DESC';
  3.  
TheTester
W tej chwili Twoje zapytanie szuka zawsze rekordów, które mają dany typ i kategorię. Czyli dla Twojego pierwszego przykładu, rekordy muszą spełniać warunek posiadania kat=5 i jednocześnie typ=0. Czy są takie rekordy?
To co chcesz osiągnąć, to sytuacje gdy zapytanie posiada albo kategorię albo typ. Z użyciem PHP jest to dość proste:

  1. $sql_s = 'SELECT * FROM lista WHERE '.((isset($_GET[kategoria]) && !empty($_GET[kategoria]))?'kat = '.$_GET[kategoria].' AND ':'').((isset($_GET[typ]) && !empty($_GET[typ]))?'typ = '.$_GET[typ].' AND ':'').'waznosc >now() AND on_off = 1 ORDER BY id DESC';
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.