我正在尝试使用php从数据库中过滤多个产品。我在html页面中有4个类别的复选框,这些值将存储在提交值的数组中,发布到php页面,其中数据被过滤。见下面的例子。
贝娄是我的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'
无效,我不明白为什么它不起作用
答案 0 :(得分:0)
$result = $dbh->prepare("SELECT * FROM products_list WHERE status='Available' AND (brand IN (?) OR color IN (?) OR fabric IN (?))"
AND之后需要括号