Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/sql] Wyszukiwanie
propage
post
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


kodowanie strony i bazy mam ustawione na uft-8

  1. <?php
  2. $fraza = strtolower($db->escape($_POST['fraza']));
  3.  $query = ("SELECT * FROM products p WHERE p.product_opis like '%".$fraza."%' or LOWER(p.product_nazwa) like '%".$fraza."%'
  4. ?>


wiadomo ze funkcja strtolower nie zmieni mi polskich liter na male, funkcja sqla LOWER to zrobi ?
Jak poprawnie korzystać z tych funckji aby można było wyszukać po nazwie nawet jak ma w sobie polskie litery
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ustaw kodowanie utf8_polish_ci i wtedy możesz bodajże prawidłowo wyszukiwać i robic ze znakami co się tylko da.


--------------------
Go to the top of the page
+Quote Post
Kicok
post
Post #3





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Metodę porównywania napisów (COLLATION) masz pewnie ustawioną na utf8_general_CI. To CI oznacza Case Insensitive, czyli nie jest zwracana uwaga na wielkość liter. Te LOWER-y i strtolower-y możesz więc wywalić.

Co do kodowania, to poinformuj bazę danych jakiego kodowania używasz:
  1. SET NAMES utf8
a ona już powinna sobie z całą resztą poradzić.


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
propage
post
Post #4





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


działa, mam jeszcze pytanie utf_polish bedzie działać też przy innych jezykach typu niemiecki, rosyjski ? Czemu ktoś ma używać uft_polish skoro general tez obługuje polskie litery ?
Go to the top of the page
+Quote Post
Kicok
post
Post #5





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


utf8_polish też obsługuje wszystkie litery. Różnica występuje np. przy sortowaniu. Przy utf_polish będziesz miał:
Kod
a
ą
b
c
ć
d

a niemieckie krzaczki pewnie gdzieś na końcu, natomiast przy utf8_german posortuje ci to według niemieckiego alfabetu.


Inny przykład: różnice przy porównywaniu napisów:
  1. SELECT 'Ędward Ącki' COLLATE utf8_general_ci = 'Edward Acki' AS 'pasuje'
  2. SELECT 'Ędward Ącki' COLLATE utf8_icelandic_ci = 'Edward Acki' AS 'pasuje'
  3. SELECT 'Ędward Ącki' COLLATE utf8_latvian_ci = 'Edward Acki' AS 'pasuje'
  4. -- i
  5. SELECT 'Ędward Ącki' COLLATE utf8_polish_ci = 'Edward Acki' AS 'pasuje'


--------------------
"Sumienie mam czyste, bo nieużywane."
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 Aktualny czas: 22.08.2025 - 06:59