Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwarka i poleskie znaki
Forum PHP.pl > Forum > Bazy danych > MySQL
siewca
Witam
Zrobiłem wyszukiwarkę która szuka rekordów w bazie MySQL. Wszystko jest ok poza jedną kwestią.
Wyszukiwarka szuka za pomocą LIKE %wartosc%
Tak więc wszystko jedno czy wpiszemy kawałek szukanej treści, olewa też małe i duże litery. Problem pojawia się wtedy gdy mamy dużą literę z ogonkiem (Ś,Ź,Ż itp.).
Chcąc wyszukać wartość Łucja, gdy wpiszemy łucja, nic nam nie znajdzie.

Wiecie może jak rozwiązać ten problem? żeby znajdowało bez względu na wielkość liter, nawet z polskimi znakami?
blooregard
  1. SELECT BLA BLA BLA ... LIKE LOWER(pole) LIKE '%" . strtolower($szukany_string) . " %' ...
nospor
Skoro dales temat w dziale php rozumiem ze chcesz rozwiązac problem w php. A wiec:
wywal tego LIKE, bo to dziala na poziomie mysql i nam sie nie przyda.
Z bazy pobierz wszystkie rekordy, nawet jak jest ich miliard. Nastepnie kazdy rekord sprawdzaj przy pomocy:
http://pl2.php.net/manual/en/function.mb-stripos.php
To co bedzie pasowalo to jest to twoj szukany rekord
smile.gif
siewca
Wolałbym to załatwić podczas wyciągania rekordów z bazy.
Zastosowałem metodę:
  1. LOWER(pole) LIKE '%" . strtolower($szukany_string) . " %'

Jednak nadal zwraca uwagę na duże i małe polskie znaki
nospor
Cytat
Wolałbym to załatwić podczas wyciągania rekordów z bazy.
Sie domyslilem od razu... Moj post mial ci jedynie zasugerowac bys na przyszlosc patrzyl w jakich dzialasz zakladasz temat. przenosze do wlasciwego dzialu.
siewca
Sorry za zły dział.
Wiecie może dlaczego nie działa ta metoda o której wyżej napisał kolega? Nie wyrzuca żadnych błędów, po prostu nadal po wpisaniu Ś nie wyszukuje ś.
blooregard
Pokombinuj z tym:
http://pl.php.net/manual/pl/function.mb-strtolower.php

i sprawdź kodowanie.
siewca
Dziękuję za pomoc. Pomogło zastosowanie funkcji:
  1. mb_strtolower($zmienna,"UTF-8");

Pozdrawiam
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.