Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwarka i poleskie znaki, małe i duże litery
siewca
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




  1. SELECT BLA BLA BLA ... LIKE LOWER(pole) LIKE '%" . strtolower($szukany_string) . " %' ...
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
siewca
post
Post #4





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.
Go to the top of the page
+Quote Post
siewca
post
Post #6





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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 ś.
Go to the top of the page
+Quote Post
blooregard
post
Post #7


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Pokombinuj z tym:
http://pl.php.net/manual/pl/function.mb-strtolower.php

i sprawdź kodowanie.
Go to the top of the page
+Quote Post
siewca
post
Post #8





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 15.11.2008

Ostrzeżenie: (0%)
-----


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

Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 17:07