[ eXP @ 06.04.2009. 18:00 ] @
Evo problema. Unesem u mysql bazu neke podatke, tipa nazive ulica, sa sve nasim slovima č ć š. E sada, kada radim formu za pretragu u php-u hteo bih da mi pretrazuje bazu zanemarujuci ta specijalna slova. Npr. ako neko ukuca u formi 'cica drazina', da on to prepozna u mysql bazi iako je tamo ubaceno kao 'čiča dražina' sa nasim slovima. Nadam se da sam bio dovoljno jasan

Evo jos jednog primera, npr imam ova tri reda u bazi:

cica drazina 25
čiča dražina 35
srpskih vladara 5

Ako neko u formi ukuca 'cica drazina' hteo bih da on izbaci oba rezultata.

Hvala unapred.
[ eXP @ 06.04.2009. 18:03 ] @
Mada mi sad pade na pamet da bi to mozda moglo da se odradi sa nekom mysql funkcijom, ipak bi mi dobro doslo neko finije resenje, ako postoji.
[ Jbyn4e @ 06.04.2009. 18:31 ] @
Nesto ovako - deo iz koda koji sam pisao ranije...
Code:

$sql_kod=....;
...
$izraz = ereg_replace("Ć|Č|C|ć|č|c","[Ć|Č|C]",$izraz);
    $izraz = ereg_replace("Ž|Z|z|ž","[Z|Ž]",$izraz);
    $izraz = ereg_replace("Š|S|s|š","[S|Š]",$izraz);
    $izraz = addslashes ($izraz);
    //$izraz = ereg_replace("Đ|đ|Dj|dj","[Đ|DJ]",$izraz);
    if ($izraz !='') {
    $sql_kod .= " AND (UPPER(naslov) REGEXP UPPER('".$izraz."') OR UPPER(autor)  REGEXP UPPER('".$izraz."'))";
...

E sad da me ubijes ako se secam sto sam komentarisao ovo sa dj...

edit: IZMENA ZBOG regexp_like koji je za oracle, i oblika za regexp za mysql....

[Ovu poruku je menjao Jbyn4e dana 07.04.2009. u 10:32 GMT+1]
[ Goran Rakić @ 06.04.2009. 18:33 ] @
Verovatno je znatno efikasnije da u bazi imaš i treću kolonu koja je "normalizovana" na ASCII i na njoj postavljen FULL TEXT indeks. Onda iz upita izbaciš slova sa kvačicama i dovučeš rezultat pretrage.
[ agvozden @ 06.04.2009. 23:14 ] @
Mislim da LIKE %% kod utf-8 baza moze ovo da odradi sam po sebi...

Moras da imas striktnu utf-8 bazu (pogledaj na forumu, ima clanak na tu temu)