Strona (kodowanie UTF-8) zawiera formularz w którym użytkownik wpisuje tekst jaki ma zostać znaleziony. Chcę umożliwić mu wpisanie tekstu z dowolną wielkością liter i znalezienie odpowiedniego wyniku w bazie. Tj. jeśli użytkownik wpisze żyrafa, to ma mu znaleźć zarówno Żyrafa jak i żyrafa, jak i ŻYRAFA itd itd.
W tym momencie zrobiłam tak, że WHERE wygląda następująco:
WHERE LOWER(moje_pole) LIKE "%'.$szukane_slowo.'%"
Przed porównaniem również $szukane_slowo przepuszczam przez strtolower() i dodatkowo funkcję zamieniającą duże polskie znaki (Ą, Ć, Ź itd) na małe.
Nie mogę zmienić kodowania tabeli ani strony. Wszystko musi pozostać tak jak jest. Niestety LOWER zmienia jakoś kodowanie i jak np. chcę wyświetlić dane przepuszczone prze MySQL-owy LOWER są w nich krzaczki. Dlatego też z porównania nic mi nie wychodzi:(
Próbowałam
<?php iconv("utf-8","iso-8859-1",$szukane_slowo) ?>
ale gdy szukane_slowo zawierało polskie litery twierdził, że zawiera niedozwolone znaki.
Podsumowując, jeśli namieszałam zbyt dużo w opisie;)
Potrzebuję zrobić szukanie po słowie wpisanym w formularzu kompletnie niewrażliwe na wielkość znaków po stronie zarówno bazy jak i wpisanego do formularza słowa. Wpisuję 'żyrafa', w bazie mam 'Żyrafa' i powinno znaleźć ten właśnie rekord.