2015-12-29 157 views
-4

代碼:搜索,通過使許多關鍵字

if(isset($_POST['submit'])){ 
    if(isset($_GET['go'])){ 
     $key1 = trim($_POST['key']); 
     $key2 = preg_replace("#[\s]+#", " ", $key1); 
     $key = explode(" ", $key2); 
     $con = mysql_connect("localhost","root","1234"); 

     if (!$con) { 
      die('Could not connect: ' . mysql_error()); 
     } 

     mysql_select_db("productdetails", $con); 

     for($i = 0; $i < count($key); $i++){  
      $result = mysql_query("select * from proddetail where pname like '%".$key[$i]."%' or pcolor like '%".$key[$i]."%' or psize LIKE '%".$key[$i]."%' or mrp LIKE '%".$key[$i]."%' or saleprize LIKE '%".$key[$i]."%' OR pType LIKE '%".$key[$i]."%' or warranty LIKE '%".$key[$i]."%' or imagename LIKE '%".$key[$i]."%' or pKey LIKE '%".$key[$i]."%' GROUP by pname"); 

上面的代碼中選擇某些行。當我通過參數手機黑色它顯示所有彩色手機。

但是,預期的結果只需要手機都是黑色的,它應該拒絕其他顏色。

+0

請將您的數據庫/表模式,使你的問題。 –

+0

pkey pname mfg psize mrp saleprize pType pcolor保修imagename –

回答

0

這個建議可能會幫助你。

在Sql查詢已檢查您的密鑰對於表中的每個字段而且您使用了A%。%因此,您的搜索字符串會發生什麼情況,每個字母都與所有字段匹配,因此Possibility是Maximum可以與表的每個字段匹配它顯示所有的手機。

如果您搜索「黑色」然後如果顏色是黑色的移動顯示器,並且如果任何移動設備名稱是黑色也顯示,但移動顏色不是黑色。

所以你不能搜索扔這個查詢。

如果取得容易,如果你搜索分類以名稱,顏色也獎品等搜索

+0

謝謝兄弟。 –