Zadejte hledaný výraz...

Vyhledávání v mysql vs. diakritika

smawe
verified
rating uzivatele
(15 hodnocení)
11. 3. 2008 20:41:49
Zdravím,
v jednom scriptu na vyhledávání mám
$dotaz = Mysql_Query("SELECT*FROM hrady WHERE `hrad` like '%$vyhled-hrad%' ORDER BY `cislo` DESC ");
script vyhledá vše, pouze s dikaritikou si neporadí (á í ú mu nevadí, ale s ů ž š ř už má problém).
Nevíte jak udělat aby script nebral zřetel na diakritiku a vyhledal v databázi to co uživatel zadá (a v DB to je ;)) ?
11. 3. 2008 20:41:49
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50949
Mgr. Ivo Toman
verified
rating uzivatele
(7 hodnocení)
11. 3. 2008 21:28:26
Zřejmě máš rozdíl v kódování databáze a php skriptu. Já mám vše v utf-8 a žádný problém ve vyhledávání s diakritikou nebyl.
11. 3. 2008 21:28:26
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50948
Honza
verified
rating uzivatele
(17 hodnocení)
11. 3. 2008 22:01:42
Mně se osvědčil postup mít vše v utf8 a v databázi mít na všech sloupcích porovnávání utf8_general_ci, pak se nerozlišuje diakritika ani velikost písmen.
11. 3. 2008 22:01:42
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50947
martink01
verified
rating uzivatele
21. 3. 2008 13:55:31
Napsal smawe;40691
Zdravím,
v jednom scriptu na vyhledávání mám
$dotaz = Mysql_Query("SELECT*FROM hrady WHERE `hrad` like '%$vyhled-hrad%' ORDER BY `cislo` DESC ");
script vyhledá vše, pouze s dikaritikou si neporadí (á í ú mu nevadí, ale s ů ž š ř už má problém).
Nevíte jak udělat aby script nebral zřetel na diakritiku a vyhledal v databázi to co uživatel zadá (a v DB to je ;)) ?
Na 99% je to ve verzi MySQL a žádné nastavování čehokoli nepomůže - jen upgrade. Taky jsem to řešil před asi cca 2 lety. V době kdy se do MySQL implementovalo UTF existovali verze co fungovali s kódováním pro češtinu jaksi napůl :( Stálo mě tohle poznání tenkrát asi 2 dny času... Tak jsem tenkrát přešel i na UTF8 a teď už žádné problémy.
21. 3. 2008 13:55:31
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50946
Honzaa
verified
rating uzivatele
24. 3. 2008 22:06:04
Napsal smawe;40691
Zdravím,
v jednom scriptu na vyhledávání mám
$dotaz = Mysql_Query("SELECT*FROM hrady WHERE `hrad` like '%$vyhled-hrad%' ORDER BY `cislo` DESC ");
script vyhledá vše, pouze s dikaritikou si neporadí (á í ú mu nevadí, ale s ů ž š ř už má problém).
Nevíte jak udělat aby script nebral zřetel na diakritiku a vyhledal v databázi to co uživatel zadá (a v DB to je ;)) ?
Mám v katalogu kódování CP1250 a funguje to normálně viz zkušební dotaz:
http://www.automotoforum.cz/search.php?search=mont%E1%9E
24. 3. 2008 22:06:04
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50945
Dr.Diesel
verified
rating uzivatele
26. 3. 2008 14:53:19
Napsal Honzaa;44624
Mám v katalogu kódování CP1250 a funguje to normálně viz zkušební dotaz:
http://www.automotoforum.cz/search.php?search=mont%E1%9E
Tohle zrovna neni asi co potreboval. Viz "montáž" vs. "montaz" . :D
26. 3. 2008 14:53:19
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50944
_Pida_
verified
rating uzivatele
11. 4. 2008 11:03:35
Můžeš zkusit funkci utf8_decode a utf8_encode, nebo zkusit mysql_query("SET CHARACTER SER cp1250");
třeba
11. 4. 2008 11:03:35
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50943
Dufin
verified
rating uzivatele
25. 9. 2008 21:27:27
Skus se podivat na http://interval.cz/clanky/jak-na-vlastni-katalog-stranek-v-php-vyhledavani/ je to tam popsany jak odstarnit diakritiku z textu jednim prikazem myslim ze ti to pomuze
25. 9. 2008 21:27:27
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50942
treba pouzit kodovanie UTF-8 a konstrukciu "COLLATE 'utf8-general-ci'", vid druhu cast tohto clanku: http://www.phpblog.sk/clanok/43/vyhladavanie-pekne-uri-a-diakritika/. to funguje bezchybne (ale mozne je, ze zavisi na verzii mysql).
27. 9. 2008 13:14:28
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50941
Petr Franěk
verified
rating uzivatele
(2 hodnocení)
11. 9. 2013 05:08:44
Měl jsem podobný problém, ale žádné z výše uvedených řešení nefungovalo.
Nakonec mi došlo, že v tom má prsty funkce htmlentities(), která přežvýká české znaky na &xxx; ...
Pro filtrování by mělo stačit používat filter_var($_POST, FILTER_SANITIZE_STRING)
nebo mysql_real_escape_string($_POST) , ale tomu druhému se dá vyhnout používáním PDO.
11. 9. 2013 05:08:44
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50940
_Pida_
verified
rating uzivatele
12. 9. 2013 09:37:59
Napsal explorer;996840
Měl jsem podobný problém, ale žádné z výše uvedených řešení nefungovalo.
Nakonec mi došlo, že v tom má prsty funkce htmlentities(), která přežvýká české znaky na &xxx; ...
Pro filtrování by mělo stačit používat filter_var($_POST, FILTER_SANITIZE_STRING)
nebo mysql_real_escape_string($_POST) , ale tomu druhému se dá vyhnout používáním PDO.
Souhlasím s PDO. V novém PHP bude extension mysql deprecated. Zbyde už jen PDO a mysqli.
To je tak pro info ;-)
12. 9. 2013 09:37:59
https://webtrh.cz/diskuse/vyhledavani-v-mysql-vs-diakritika/#reply50939
Pro odpověď se přihlašte.
Přihlásit