Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/sql] Wyszukiwanie
Forum PHP.pl > Forum > PHP
propage
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
wookieb
Ustaw kodowanie utf8_polish_ci i wtedy możesz bodajże prawidłowo wyszukiwać i robic ze znakami co się tylko da.
Kicok
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ć.
propage
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 ?
Kicok
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'
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.