![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 0 Dołączył: 9.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
mam takie zapytanie
gdy sie poda w formularzu wszystko tj nazwa, opis, firma, kolor to wszystko dziala ok ale jesli ktores z pol zostaje niewypelnione (a użytkownik musi miec taka mozliwosc) to mimo ze pozostale wartosci znajduja sie w bazie nie zwraca nic Jesli ktos wie jak to rozwiazac to bylbym wdzieczny Interesuja mnie rozwiazana w samym zapytaniu mysql oraz przez php Ten post edytował batman 2.09.2008, 18:12:04
Powód edycji: nobody expects spanish inquisition
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 9 Dołączył: 8.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
problem zapewne wynika z tego, że kiedy UŻYTKOWNIK (pisownia polska nie jest taka trudna;P ) nie poda jakiejś wartości to zapytanie wyszukuje pól z pustymi ciągami znaków...przez to, że masz wszędzie AND to wygląda na tej zasadzie, że szuka pól gdzie opis czy tam firma jest pustym ciągiem znaków, a takowych nie znajduje bo jak sam napisałeś pozostałe wartości są w tabeli. Dlatego moja rada:
1. albo zamiast AND daj OR wtedy powinno działać 2. albo zrób sprawdzanie tego co jest zaznaczone i konstruuj w locie zapytanie np: Kod $sql = "SELECT * FROM sprzet WHERE ";
if($_POST['nazwa'] != '') { $sql .= "nazwa LIKE '%nazwa%' AND"; } if($_POST['opis'] != '') { $sql .= "opis LIKE '%opis%'"; .... // i tak dalej |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 12:29 |