我想要使用php过滤和显示来自mysql的数据贝娄是我的输入过滤器
<form id="search_form">
<div class="well">
<h4 class="text-info">Search by Size</h4>
<input value="32" class="sort_rang" name="size[]" value="New" type="checkbox"> 32
<input value="36" class="sort_rang" name="size[]" value="fashion" type="checkbox"> 36
<input value="38" class="sort_rang" name="size[]" value="New" type="checkbox"> 38
</div>
<div class="well">
<h4 class="text-info">Search by price</h4>
<input value="950" class="sort_rangn" name="price[]" value="New" type="checkbox"> 950
<input value="1024" class="sort_rangn" name="price[]" value="fashion" type="checkbox"> 1024
<input value="500" class="sort_rangn" name="price[]" value="New" type="checkbox"> 500
</div>
</form>
现在我们有两个过滤器大小和价格都在数组中搜索并在mysql中搜索
$sql="SELECT * FROM products";
extract($_POST);
if(isset($size))
$sql.=" WHERE size IN (".implode(',', $size).")";
if(isset($price))
$sql.=" WHERE (price IN (".implode(',', $price)."))";
$all_row=$db->query($sql);
它的工作正常,但只有一个条件是工作规模或价格,我使用一个表名产品
答案 0 :(得分:2)
您可以尝试以下代码段:
AND
过滤成功的大小或价格。如果您想要匹配这两者,请在第一个OR
语句中使用if
而不是IF ELSEIF
注意:在代码中,如果在一个案例中设置了两个变量,那么您将收到语法错误。这是使用$price
链。
假设设置了$size
和$sql
个变量。然后,您的IF
变量将受到query
两个语句的影响。然后,最终生成的SELECT .... WHERE size IN (....) WHERE price IN (...) ...
将有两个where子句,这将为语法错误生成错误。您生成的查询或多或少会如下所示:
<li ng-repeat="item in itemCart">
{{item.title}} <br>
{{item.category}}  
{{ formatCurrencyFunction({cost: item.price}) }}
</li>
( BAD SYNTAX )
答案 1 :(得分:0)
$sql="SELECT * FROM products";
extract($_POST);
if(isset($size) && isset($price))
$sql.=" WHERE size IN (".implode(',', $size).") AND price IN (".implode(',', $price).")";
else if(isset($size))
$sql.=" WHERE size IN (".implode(',', $size).")";
else if(isset($price))
$sql.=" WHERE (price IN (".implode(',', $price)."))";
$all_row=$db->query($sql);
使用此代码,这对我有用。