Autor | Zpráva | ||
---|---|---|---|
davef6 Profil |
#1 · Zasláno: 17. 4. 2009, 14:59:46
vyhledávám v jednom inputu a chci vyhledávat mp3jky (interpret, skladba, nebo dohromady), mám ta tuto podmínku
WHERE interpret LIKE '%".addslashes($_POST["search_1"])."%' OR skladba LIKE '%".addslashes($_POST["search_1"])."%' takto mi to vyhledá buď jenom interpreta, který se může nacházet i ve skladbě (například název skladby feat. interpret) potřebuju když někdo zadá do vyhledávače třeba takto interpret - skladba nebo interpret skladba, aby mu to tu skladbu a interpreta našlo, te´d to funguje pouze při zadání pouze interpreta nebo skladby........díky za rady |
||
Johnik Profil |
#2 · Zasláno: 17. 4. 2009, 15:20:01
Rozděl slovo na pole a pak pomocí foreach slož nový dotaz. podle tvých představ.
|
||
davef6 Profil |
#3 · Zasláno: 18. 4. 2009, 10:44:14
může mi někdo nastínit jak to tam vložit s foreach?
jako že to mám nějak takhle $r_find = eplode(" ",$_POST["search_1"] ); $prikaz = MySQL_Query("SELECT ID, cas, soubor, interpret, skladba, stazeno FROM mp3 WHERE interpret LIKE '%".addslashes($_POST["search_1"])."%' OR skladba LIKE '%".addslashes($_POST["search_1"])."%' order by id DESC LIMIT 200"); $num = mysql_num_rows($prikaz); $limit = round($num / 2); $cislo=1; echo"<div class=\"zeb_sl_1\"><div class=\"bg_top\"><h1>Nalezeno $num mp3</h1></div><div class=\"bg_box_zeb_left\"><ul>"; if($num > 0) { while($zaz = mysql_fetch_assoc($prikaz) AND $cislo<(201)) |
||
Kajman_ Profil * |
#4 · Zasláno: 20. 4. 2009, 10:33:35
Možná něco takového. Nebo použít fulltextový index, mělo by to být jednodušší i rychlejší než like.
$podminky=array(); $r_find = explode(" ",$_POST["search_1"] ); foreach($r_find as $hledano) { if(trim($hledano)!='') $podminky[]="(interpret LIKE '%".addslashes(trim($hledano))."%' OR skladba LIKE '%".addslashes(trim($hledano))."%')"; } $where=''; if(count($podminky)>0) $where=" WHERE ".implode(' AND ',$podminky); $prikaz = MySQL_Query("SELECT ID, cas, soubor, interpret, skladba, stazeno FROM mp3 $where order by id DESC LIMIT 200"); |
||
Časová prodleva: 15 let
|
0