Autor Zpráva
web2000
Profil *
Záznamy mám oddělené mezerou z leva a čárkou z prava, tedy jednotlivá slova v záznamu, ale ztohoto zápisu:

popis REGEXP [ ]*$hledej[ ,?!.]*' zřejmě je to nějaký výtažek ze syntaxe ten dotaz dohromady nemám.

mám tedy stávající dotaz .... WHERE popis LIKE '$hledej' "; - jak jej upravit aby bylo zajištěno vyhledávání dle jednotlivých slov.

díky moc.
Kcko
Profil
FIND_IN_SET();

a jako separator si das mezeru .. snad by to melo jit
ph@tE
Profil *
Už jsem to psal v jednom příspěvku, ale nevím jestli je to přesně to co chcete. Celý dotaz by byl

mysql_query("SELECT * FROM tabulka WHERE popis REGEXP '[ ]$hledej[,]'", $spojeni);
// Ael záznamy by musely být odděleny pouze mezerou zleva a čárkou zprava, nic jiného by nepřípadalo v úvahu. Další povolené znaky, kterými mohou být slova oddělena případně vepiš do hranatých závor (zleva a zprava)
web2000
Profil *
Dotaz mám sestavený takto:

$sql = "SELECT * FROM zaznam WHERE popis REGEXP '[ ]$hledej [,]'";

ale po jeho provedení se mi žádné výsledky vyhledávání neobjeví i když slovo kosmetika v záznamu uloženo je.

Slova záznamu mám zapsaná takto: kosmetika, parfémy, květiny,
ph@tE
Profil *
To bude zřejmě tím, že před slovem kosmetika není v db mezera, zkus to takhle:
$sql = "SELECT * FROM zaznam WHERE popis REGEXP '[ ]?$hledej [,]'";

Ten otazník tam říká, že tam může bejt mezera jednou nebo tam nemusí bejt vůbec, tak snad...
web2000
Profil *
Zápis jsem ještě trošku upravil:

$sql = "SELECT * FROM zaznam WHERE popis REGEXP '[ ]?$hledej ?[,.]'";

a už to běží, regulérní výrazi jsou bezva těch už se jen tak nepustím, díky za dobrý tip.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0