| Autor | Zpráva | ||
|---|---|---|---|
| web2000 Profil * |
#1 · Zasláno: 11. 5. 2007, 11:08:38
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 |
#2 · Zasláno: 11. 5. 2007, 11:40:38
FIND_IN_SET();
a jako separator si das mezeru .. snad by to melo jit |
||
| ph@tE Profil * |
#3 · Zasláno: 11. 5. 2007, 14:47:09
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 * |
#4 · Zasláno: 11. 5. 2007, 19:46:36
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 * |
#5 · Zasláno: 11. 5. 2007, 20:48:23
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 * |
#6 · Zasláno: 11. 5. 2007, 23:59:34
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. |
||
|
Časová prodleva: 18 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0