Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwarka i poleskie znaki, małe i duże litery
siewca
post 5.02.2010, 13:15:11
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
blooregard
post 5.02.2010, 13:18:58
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) . " %' ...


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
nospor
post 5.02.2010, 13:20:07
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
smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
siewca
post 5.02.2010, 13:56:07
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 5.02.2010, 13:58:34
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
siewca
post 5.02.2010, 14:37:47
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 5.02.2010, 14:43:32
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.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
siewca
post 5.02.2010, 15:00:38
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:07