Autor Zpráva
Falcon
Profil *
Zdravim.
select * from produkty WHERE (LOWER(nazev COLLATE cp1250_czech_cs) LIKE
'%".strtolower($hledamtext)."%') AND sklad >= '1' order by nazev
ASC"


Pokud mám v $hledamtext text bez diakritiky, je vše v pořádku, ale pokud je s
diakritikou, háže to error :

Illegal mix of collations (cp1250_czech_cs,IMPLICIT) and
(utf8_general_ci,COERCIBLE) for operation 'like

V configu u připojování k DB mam v

mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET character_set_results=utf8");

I pokud to prohodim za cp1250, stejně to nefunguje.
Kajman_
Profil *
Pokud máte stránky v utf8, tak používejte
http://cz2.php.net/manual/cs/function.mb-strtolower.php
Falcon
Profil *
Fatal error: Call to undefined function mb_strtolower() in c:\AppServ\www\spidla\new\products.php on line 67

Nějak mi to tu funkci nechce vzít.
Alphard
Profil
odkomentuj v php.ini řádek s extension=php_mbstring.dll
Falcon
Profil *
odkomentuj v php.ini řádek s extension=php_mbstring.dll

Super.To sice pomohlo.Žádný error, ale zase mi to nic nenajde, pokud vyhledávám s diakritikou :)

$query = mysql_query("select * from produkty 
WHERE (
LOWER(nazev) LIKE '%".mb_strtolower($hledamtext)."%'
OR LOWER(search) LIKE '%".mb_strtolower($hledamtext)."%'
OR LOWER(popis) LIKE '%".mb_strtolower($hledamtext)."%'
) 
AND sklad >= '1' 
order by nazev ASC") or DIE(mysql_error());


Např. pokud vyhledávám slovo "červené" a v DB ve sloupci nazev mám "auto je červené", tak mi to nic nenajde.
Kajman_
Profil *
A když zapomenete na všechny ty lower a necháte jen na těch sloupečcích porovnání končící na _ci, tak to také nejde? A máte to červené auto skladem?
Falcon
Profil *
A když zapomenete na všechny ty lower
Tak teď to funguje skvěle.Bylo to těma lower.Moc děkuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0