Skocz do zawartości

Wyszukiwanie a polskie znaki


Mar

Rekomendowane odpowiedzi

Witam,

Przy korzystaniu z wyszukiwarki przesyłam zmienną za pomocą GET, następnie przepuszczam to przez zapytanie:

$q.=" (haslo LIKE '%".$_GET['szukaj']."%' )";

ale pojawił się problem, jeśli ktoś nie wpisze polskich znaków nie otrzyma wyniku, ponieważ hasła mam z polskimi znakami.. ma ktoś jakiś pomysł jak sformatować zmienną $GET_szukaj by dobrze działało to z polskimi znakami, jak również bez.

Tz. jak ktoś wpisze np "cma" lub "ćma" zwróciło hasło "ćma".

Z góry dzękuję za pomoc.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm, dziekuję za radę, już trochę to zmieniłem, ale jak ktoś zna jakiś pomysł jak to dobrze zabezpieczyć byłbym wdzięczny.. jak również powracam do pytania w pierwszym poście.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Sądzę, że zapytanie typu SELECT * FROM tabela WHERE MATCH (hasla) AGAINST ('łóżko','lozko'); okazało by się pomocne. Zamieniając polskie znaki na odpowiedniki i na odwrót zmiennych zapytania.

Ale niestety nic z tego :( doczytałem, że jak słowo ma mniej niż 4 znaki jest ignorowane. Wiec pozostaje kombinacja kilku zapytań z polskimi i bez polskich znakow w wypadku jeśli zapytanie nie zwróci rekordu...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Mion: co do ilości znaków możesz to edytować przez zmienną ft_min_word_len - po zmianie przebudowa indeksów i po kłopocie

Ponadto match .. against działa na polach z nałożonym indeksem fulltext

Mar: radzę nie używać LIKE '%".$_GET['szukaj']."%' ponieważ wtedy nie korzystasz z indeksu (jesli takowy zrobiłeś) - tak jak radzi mion spróbuj przejść na pełnotekstowy

Ponadto możesz spróbować innego podejścia - przy dodawaniu do bazy skrypt może dla każdego polskiego wyrazu zamieniac polskie znaki i wrzucac do osobnej tabeli typu:

('ćma','cma','nrelementuwktorymwystepuje')

i wykonywac zapytanie z wykorzystaniem JOIN i na koncu UNION aby polaczyc wyniki. Jest wtedy jeszcze problem sortowania ale to w następnym wywodzie ;P

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności