通过传递许多关键字,从前端搜索搜索框

时间:2015-12-29 09:36:02

标签: php sql

代码:

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");

上面的代码选择了一些行。当我传递参数移动黑色时,它会显示所有彩色手机。

但是预期结果只需要全部为黑色的手机,它应该拒绝其他颜色。

1 个答案:

答案 0 :(得分:0)

愿这个建议帮助你。

在Sql查询中你检查了你的密钥对表的每个字段和你使用了A%。%那么你的搜索字符串每个字母与所有字段匹配会发生什么,所以可能性是最大匹配表的每个字段所以它显示所有手机。

如果您搜索&#34; 黑色&#34;然后,如果颜色是黑色的移动显示器,如果任何移动名称也是黑色也显示但移动颜色不是黑色。

所以你不能搜索抛出这个查询。

如果您对搜索进行分类,则会变得简单如同按名称搜索,颜色也是奖品等。