使用php从mysql中的单个表中过滤多个产品

时间:2016-02-21 08:59:52

标签: php mysql arrays

我正在尝试使用php从数据库中过滤多个产品。我在html页面中有4个类别的复选框,这些值将存储在提交值的数组中,发布到php页面,其中数据被过滤。见下面的例子。

enter image description here

贝娄是我的HTML

<input class="le-checkbox" type="checkbox" name="filter1[]" value="<?=$bkey?>" /> <label><?=$bkey?></label>
<input class="le-checkbox" type="checkbox" name="filter2[]" value="<?=$bkey?>" /> <label><?=$bkey?></label>
<input class="le-checkbox" type="checkbox" name="filter3[]" value="<?=$bkey?>" /> <label><?=$bkey?></label>
<input class="le-checkbox" type="checkbox" name="filter4[]" value="<?=$bkey?>" /> <label><?=$bkey?></label>

值存储在filter1[],filter2[],filter3[],filter4[]

在php中

$filter1=$_POST['filter1'];
$filter2=$_POST['filter2'];
$filter3=$_POST['filter3'];

并且内爆

f(isset($filter1)){

        $pbrand= implode(",",$filter1);

        }
    if(!empty($filter2)){

        $pcolor= implode(",",$filter2);

        }
        if(!empty($filter3)){

        $pfab= implode(",", $filter3);

        }

现在用mysql检查

$result = $dbh->prepare("SELECT * FROM products_list WHERE status='Available' AND brand IN (?) OR color IN (?) OR fabric IN (?)");
        //$result->bindValue(1, $status);
        $result->bindValue(1, $pbrand);
        $result->bindValue(2, $pcolor);
        $result->bindValue(3, $pfab);
当我从每个类别中选择单个复选框时,

工作正常。当我检查单个catagory中的多个复选框时,它不起作用以及我的条件status='Available'无效,我不明白为什么它不起作用

1 个答案:

答案 0 :(得分:0)

$result = $dbh->prepare("SELECT * FROM products_list WHERE status='Available' AND (brand IN (?) OR color IN (?) OR fabric IN (?))"
AND之后需要括号