Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][sql] sortowanie wyników na podstawie 2 selectów
HBK
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 3.08.2008

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


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.  


Ten post edytował HBK 12.01.2011, 22:18:42
Go to the top of the page
+Quote Post
TheTester
post
Post #2





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 11.03.2009

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


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';


Ten post edytował TheTester 13.01.2011, 08:58:22
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 Aktualny czas: 21.08.2025 - 12:15