Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwarka?
Forum PHP.pl > Forum > PHP
krysk
Jakie pytanie zadać bazie danych, aby zwróciła mi rekordy jeśli znajdzie w polu nazwa lub about wskazany przeze mnie fragment?

Narazie w wersji uproszczonej mam takie zapytanie:
  1. SELECT * FROM `serwisy` WHERE (`nazwa` LIKE upper('%$q%') OR `about` LIKE upper('%$q%') AND `accept`='y') ORDER BY `top`,`firma`,`about`,`tel`,`fax`,`wlasciciel`,`nazwa`


W bazie mam m.in. wpis Moda Polska - kiedy wpiszę 'moda' - znaduje. Wpiszę 'oda' nie znajdzie. To samo się dzieje, gdy wpiszę Polska. Gdzie robię błąd? Jak powinienem sformułować pytanie?

Nadmienię, że w innym projekcie kod działał mi bezproblemowo, dlatego nie wiem o co tu może chodzić :|
tiraeth
  1. SELECT * FROM tabela WHERE kolumna
  2. LIKE '%$zmienna%'
  3. ORDER BY kolumna ASC


może bez tego upper questionmark.gif
krysk
No niestety - przykro mi - niedziała :|
Dabroz
  1. SELECT * FROM `serwisy` WHERE ((UPPER(`nazwa`) LIKE upper('%$q%')) OR (UPPER(`about`) LIKE upper('%$q%')) AND `accept`='y') ORDER BY `top`,`firma`,`about`,`tel`,`fax`,`wlasciciel`,`nazwa`


Moze tak?
Bora
jeżeli dane nie są przechowywane w polu typu blob lub innym binarnym to to upper nie ma sensu.
Dabroz
blink.gif

UPPER używa się chyba raczej do pól typu TEXT...

(a tak w ogóle to temat powinnien być w dziale Bazy Danych)
krysk
Działa... błąd był bardzo prosty, i głupi smile.gif aż wstyd się przyznawać... Niesprawdziłem które pola przeszukuję. I tu był pies pogrzebany. tiredsmiley.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.