Autor Zpráva
davef6
Profil
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
Rozděl slovo na pole a pak pomocí foreach slož nový dotaz. podle tvých představ.
davef6
Profil
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 *
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");

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: