Autor | Zpráva | ||
---|---|---|---|
a3 Profil * |
Asi jsem to předtim dal do blbý sekce, tak to se omlouvám.
ten doatz se mi skládá takhle a chci se zeptat, jak mám udělat, aby mi to vyhledávalo i v druhých slovech než jen v začátečních v originalnim nazvu, takhle to vyhledává jen jestli celej ten výraz v databázi začíná na hledaný slovo, asi by to šlo udělat tak, že odstranim tohle ^, ale já zase nechci, aby mi to vyhledávalo i výrazy uprostřed slov $dotaz .= " LOWER(Originalni_Nazev) REGEXP ('^"; $dotaz .= implode($array, "') OR LOWER(Originalni_Nazev) REGEXP ('^"); $dotaz .= "')"; if( count( $array ) > 1 ){ $dotaz .= " OR LOWER(Originalni_Nazev) REGEXP ('^" . addslashes( htmlspecialchars( trim( $string ) ) ) . "')"; } Moderátor Joker: Zpřesnil jsem titulek, původní: „Regulární výraz při hledání“
A možná by to patřilo spíš do databází, nejsem si jistý. Nechávám zatím tady. |
||
Joker Profil |
#2 · Zasláno: 2. 10. 2010, 23:12:59
a3:
„aby mi to vyhledávalo i v druhých slovech než jen v začátečních“ Tak potom je špatně to ^, to značí začátek řetězce. „ale já zase nechci, aby mi to vyhledávalo i výrazy uprostřed slov“ Tak místo ^ dát na začátek hranici slova, \b |
||
a3 Profil * |
#3 · Zasláno: 3. 10. 2010, 01:36:10
Když to zaměnim jen za ten znak, tak to nefunguje, pokoušel jsem se použít i všemožný závotky, uvozovky, apostrofy atd a prostě to furt nejde, nemohl by mi někdo naznařit, jak to \b do toho mam přesně vložit, aby to fungovalo?
|
||
Joker Profil |
#4 · Zasláno: 3. 10. 2010, 09:46:48
a3:
Normálně, regulární výraz \btext by měl najít text na začátku slova.
Případně by většinou fungovala i mezera (resp. ^ nebo mezera, samotná mezera by nenašla text úplně na začátku řetězce) |
||
a3 Profil * |
#5 · Zasláno: 3. 10. 2010, 14:19:45
No a to mi právě nic nenajde, mam to takhle s timhle ^ to hledá v pohodě
$string= mb_strtolower($string, "UTF-8"); $array = preg_split("/[\s,]+/", $string ); foreach( $array as $id=>$value ){ $array[$id] = addslashes( htmlspecialchars( $value ) ); } $dotaz .= " LOWER(Originalni_Nazev) REGEXP ('\b"; $dotaz .= implode($array, "') OR LOWER(Originalni_Nazev) REGEXP ('\b"); $dotaz .= "')"; if( count( $array ) > 1 ){ $dotaz .= " OR LOWER(Originalni_Nazev) REGEXP ('\b" . addslashes( htmlspecialchars( trim( $string ) ) ) . "')"; } |
||
a3 Profil * |
#6 · Zasláno: 3. 10. 2010, 17:23:34
A ještě jsem teda zkusil tam dát tohle ^ s mezerou, asi takhle ' ^', ale bez těch uvozovek a to mi to nenajde taky nic, ale když tam dám jen samotný ^, tak to nachází, ale jen když tak zaříná celej řetězec
|
||
a3 Profil * |
#7 · Zasláno: 4. 10. 2010, 18:54:12
Prosím, to opravdu nikdo netuší, kde dělám chybu?
Zkoušel jsem všemožný kombinace, našel jsem si několik stránek, jak se to zapisuje a stejně jsem to nedokázal dát dohromady, aby mi to něco našlo. Určitě to bude něco triviálního, jen na to nemůžu přijít |
||
Časová prodleva: 14 let
|
0