Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Sortowanie wyników
Forum PHP.pl > Forum > Przedszkole
xx88zg
Witam,

nie wiem czy to już gdzieś było ale szukałem i nie znalazłem.

Mam takie zapytanie:

  1. SELECT `id`,`imie`,`nazwisko`,`rok`,`poczta`,`tel`,`zawody`,`jezyki` FROM `pracownicy` WHERE `zawody` LIKE '%$_POST[zawod]%' AND `jezyki` LIKE '%$_POST[jezyk]%' OR `rok` LIKE '$w_rok' ORDER BY `nazwisko`



I teraz działa ładnie wszystko gdy:

:: wypełnię pole zawód - wyświetla wszystkie rekordy z danym zawodem
:: wypełnię pole zawód i język - wyświetla rekordy z danym zawodem i do tego z danym językiem

Problem jest gdy:

:: wypełnię pole zawód, wiek i język - wtedy wyświetla mi rekordy z zawodem i językiem, ale do tego również wszystkie zawierające odpowiedni wiek.

Obrazując to:

mam tabele:

nazwisko | wiek | zawod | jezyk |
malinowski | 27 | murarz | niemiecki
kowlaski | 20 | murarz | niemicki

i jak zawod = murarz, jezyk = niemiecki, wiek = 20 powinnien się pojawić rekord z kowalskim a pojawiają sie oba?

podejrzewam że to wina AND i OR ale nie wiem jak mam to rozwiązać?
webasek
Zamiast takiego zapytania:

  1. SELECT `id`,`imie`,`nazwisko`,`rok`,`poczta`,`tel`,`zawody`,`jezyki` FROM `pracownicy` WHERE `zawody` LIKE '%$_POST[zawod]%' AND `jezyki` LIKE '%$_POST[jezyk]%' OR `rok` LIKE '$w_rok' ORDER BY `nazwisko`


powinno być takie:

  1. SELECT `id`,`imie`,`nazwisko`,`rok`,`poczta`,`tel`,`zawody`,`jezyki` FROM `pracownicy` WHERE `zawody` LIKE '%$_POST[zawod]%' AND `jezyki` LIKE '%$_POST[jezyk]%' AND `rok` LIKE '$w_rok' ORDER BY `nazwisko`


wtedy wyświetli to co chcesz
xx88zg
tak ale w tym przypadku jak wpisze tylko sam zawód to nie wyświetla żadnego rekordu, dodatkowo jak wpisze język i zawód to też nic nie wyświetla. działa tylko w przypadku podania wszystkich 3 parametrów lub zawodu i wieku.
Ar2r
Jeśli jakieś pola są opcjonalne to sprawdzaj wcześniej czy są wypełnione i buduj zapytanie SQL tylko z dostępnych danych.
xx88zg
no to chyba jest najlepsze rozwiązanie, ale to już wyższa szkoła jazdy - no ale co trzeba próbować smile.gif
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.