![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 236 Pomógł: 0 Dołączył: 4.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam taką wyszukiwarkę:
i wyszukuje wszystko ok, dopóki nie ma polskich liter. Jeśli da się jakąś polską literę, to pokazuje komunikat, że brak wyników. Przykładowo: w bazie znajduje się "śmierć", to po wpisaniu "smierc", znajdzie rekord. Ale jeśli wpisze się z polskimi literami, czyli: "śmierć", wtedy pokaże brak wyników. Czym to może być spowodowane i jak to naprawić? Kodowanie bazy - utf8_general_ci, kodowanie strony - utf8. Próbowałem przekonwertować na nowo rekordy, ale nie w tym rzecz jednak leży. Mam wrażenie, że nie jest to problem z kodowaniem chociaż może być z metodą porównywania napisów w indeksach? o to mi chodzi konkretniej: ![]() nie wiem tylko jak zmienić, by tam było utf8. Jednak mam wrażenie, że problem leży w samym skrypcie wyszukiwarki, jednak nie mam pojęcia jak to zmodyfikować. Macie jakieś pomysły? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
a jaką masz metodę porównywania znaków na kolumnie?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 236 Pomógł: 0 Dołączył: 4.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
wszedzie mam utf8, ale sprecyzuj proszę, bo nie wiem czy dokładnie zrozumiałem.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
wszedzie mam utf8, ale sprecyzuj proszę, bo nie wiem czy dokładnie zrozumiałem. W kolumnie w której realizujesz to wyszukiwanie zrób Metoda porównywania napisów utf8_polish_ci -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 236 Pomógł: 0 Dołączył: 4.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
niestety nic nie pomogło. możliwe, że to leży w kodzie wyszukiwarki, tylko nie wiem jak to zmodyfikować. ma ktoś jakiś pomysł?
w sumie to nie jestem pewien czy dobrze to zrobiłem: wyszukiwanie realizuję w trzech kolumnach i w nich zrobiłem kodowanie na utf8_polish_ci i wtedy przestało wyszukiwać w jakikolwiek sposób. Zawsze wyskakiwał komunikat o braku wyników. Po powrotnej zmianie na general_ci wszystko chodzi. Wydaje się, że TYLKO w tym kodowaniu wyszukiwarka działa. Co z tym jest nie tak? Ten problem jest jakiś nielogiczny. Dlaczego nie znajduje? zakodowanie formularza na charset="utf8" również nic nie daje. Co z tym może być? Z tego się wydaje, że polskie litery formularz przekazuje dobrze, ale to wygląda na to, jakby baza myślała, że te polskie litery nie występują w bazie i nie wie co to są polskie litery, bo ich zwyczajnie nie pokazuje. Woli wyświetlić brak wyników. Naprawdę jestem ciekawy DLACZEGO nie wyszukuje polskich liter... chyba z 20 stron googlowskich przeszukałem i znalazłem jedną osobe z takim samym problemem, ale tam również nikt nie potrafił jej pomóc. Może tego po prostu nie da się zrobić? EDIT: Taki mały spis, bo może coś mam źle: Tabela - newsy Mechanizm składowania - MyISAM Metoda porównywania napisów - utf8_general_ci Teraz ciekawostka: próbowałem w phpmyadmin wyszukać rekordu "śmierć" z polskimi literami i znalazło. Z tego wnioskuję, że może w kodzie wyszukiwarki fulltext leży błąd? w phpmyadmin próbowałem wyszukiwać z pomocą LIKE %...% |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
A masz możliwość użycia sphinxa? Jeśli tak to daj sobie spokój z wyszukiwaniem pełnotekstowym na bazie i użyj mechanizmów sphinxa
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:17 |