![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 2.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam sobie formularz wyszukiwania danych w bazie i zauważyłem, że zapytanie pobierające dane rozszerzone o 10 nowych pól pobiera za każdym razem pobieraz mi wszytskie rekordy z bazy ;/ dane z formularza pobieram, tak: Natomiast zapytanie wygląda następująco:
Gdzie jest błąd? Struktura tabeli wygląda tak:
Z góry dziękuję za wszelkie odpowiedzi i sugestie! ![]() Pozdrawiam, amdziak |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma żadnego błędu, Twoje zapytanie po prostu pobiera wszystkie rekordy, bo klauzula where obejmuje wszystkie wiersze. Wystarczy, że jakaś zmienna z POSTa jest pusta, to dostajesz "kolumna like '%'" - czyli dowolna wartość w tej kolumnie przejdzie, a w where wszystkie warunki są połączone OR więc dla każdego wiersza będzie to spełnione.
-------------------- there is much to be learned
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 2.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Więc jak sformułować zapytanie, aby dla dowolnego pola, albo kilku było ok?
Dzięki za szybką odpowiedź |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Te warunki OR dodawaj tylko jeśli odpowiednia zmienna z POSTa nie jest pusta.
-------------------- there is much to be learned
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Po pierwsze, to chyba pomyliła ci sie logika. Powiedzmy ze ktos w pole imie wpisaj JAN, w nazwisko KOWALSKI. To wg. Ciebie szukka kogos o imieniu JAN lub nazwisku KOWALSKI, a raczej jest tak, ze ktos wowcza szuka kogos o imieniu JAN i nawisku KOWALSKI.
Zamiast OR powinno byc AND Po drugie, jak juz wpsomniano, warunki w mysql masz tworzyc dopiero gdy dane pole jest wypelnione http://nospor.pl/wyszukiwarka-zapytanie-za...d-warunkow.html ps: znasz jeszcze jakies inny typy niz VARCHAR? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 2.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki - o to chodziło
![]() faktycznie, powinny byc and'y zamiast or'ow... Oczywiście, że znam i to bardzo wiele, ale że to jest jakaś importowana baza to pola poszły najmniej inwazyjne, czyli varchary, chociaż wolałbym varchar2 ![]() mam pytanie: dlaczego zapytanie zalezne od warunku nie dziala mi z like?
pytanie jest niewazne: wszystko bylo, ok - wyswietlilem sobie zapytanie echem i zobaczylem, ze brakuje '%' ;/ Dzięki jeszcze raz wszystkim za pomoc! ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:38 |