![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z napisaniem zaawansowanej wyszukiwarki. Formularz wygląda tak:
Mianowicie wszystko komplikuje się dla mnie, ponieważ użytkownik może wybrać pole "Wszystkie". I co wtedy zrobić? Sprawa byłaby prostsza bez tego czyli jedno zapytanie gdzie coś=coś i szukaj. Ale może wybrać np. miasto warszawa a dalej już "Wszystkie", "Wszystkie", "Wszystkie" etc. Jak to wyszukać? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Raz musisz dodać WHERE, a raz AND, musisz wymyślić tylko kiedy.
Z tego co wrzuciłeś, to jesteś już coraz bliżej poprawnego rozwiązania, ale popatrz na to spokojnie, zacznij od jednego selecta, później dodaj drugi. Warunek mniej więcej powinien wyglądać tak:
To jest zapytanie dla dwóch selectów. Na początku jest tworzone podstawowe zapytanie, które zwróci mi WSZYSTKIE DANE. W pierwszym warunku ($country) jest sprawdzane czy wartość selecta jest różna od ANY, jeżeli jest, to do $query dodaję, WHERE, analogicznie w drugą stronę, jest równe ANY - nie wchodzi do warunku i zapytanie zostaje w podstawowej formie. Drugi warunek sprawdza to samo dla $city, ale bierze pod uwagę jeszcze wartość z poprzedniego selecta. Jeżeli poprzedni był ANY, to znaczy, że nie zostało nic dodane i trzeba zacząć z WHERE, jeżeli był różny od ANY, to znaczy, że już jest coś wybrane i Ty musisz tylko dodać AND... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 07:02 |