Narus
31.01.2010, 20:27:38
Witam
Mam wyszukiwarkę na swojej stronie, przeszukującą baze msql w poszukiwaniu wyników, prosta oparta na POST. Wszystko pięknie działa, mam jednak małe 'ale'.
Załóżmy szukam frazy "małysz" i ładnie wyświetla mi wyniki. Jednak gdy wpiszę "malysz" to wyników brak.
Jak rozwiązać ten problem?
Pozdrawiam serdecznie
The Night Shadow
1.02.2010, 12:04:09
MySQL nie posiada rozszerzenia ignorującego polskie znaki diakrytyczne. Możesz jednak obejść ten problem rozbudowując proced dodawania / aktualizacji danych w bazie. Przykład tabeli users
first_name
first_name_search
last_name
last_name_search
Tudzież rozbijasz to na dwie zupełnie odrębne tabele (pierwsza zwykła, druga dla wyszukiwarki).
Wstawiasz odpowiednio takie dane
Jeży
Jezy
Gomułka
Gomulka
Jak masz formularz wyszukiwania, który zwraca Ci szukaną frazę najpierw musisz wyfiltrować dane, czyli zamienić polskie znaki diakrytyczne na ich odpowiedniki, a potem przeszukać bazę, czyli np. ktoś wpisał Gomułka, filtrujesz to zamieniając ł na l. Powstaje Ci Gomulka i porównujesz to z polami search w bazie.
Narus
1.02.2010, 18:59:23
ok, dzięki za odpowiedź

choć szkoda, że nie ma innego sposobu