我有 3 个选定的数据组、供应商和产品;我想按一个、两个或三个选定的数据一起过滤。
我使用此方法进行过滤,但它不起作用:
这是我的代码:
$sec_query = "";
$group= $_GET['group'];
$supplier = $_GET['supplier'];
$product= $_GET['product'];
if(isset($_GET['supplier']) && !empty( $_GET['supplier'])){
$sec_query = " AND catalog.supplier = '$supplier' ";
}
if(isset($_GET['product']) && !empty($_GET['product'])){
$sec_query = " AND catalog.product = '$product' ";
}
if (isset($_GET['group']) && !empty($_GET['group'])){
$sec_query = " AND catalog.group = '$group' ";
}
$sql = " SELECT group,id,product,supplier,SUM(total)as total,date_created FROM catalog WHERE 1=1 $sec_query AND date_created > '2014' GROUP BY group,id,product,supplier,date_created ORDER BY id";
$query = $conn->prepare($sql);
$query->execute();
$data_sql = $query->fetchAll(PDO::FETCH_ASSOC);
<form role="form" action='' method='GET'>
<select name="group" id = "group" style="width: 100%;">
<option value="group1" <? if($group== "group1" ){ echo "SELECTED = selected";} ?> >Group1</option>
<option value="group2" <? if($group== "group2" ){ echo "SELECTED = selected";} ?> >Group2</option>
<option value="group3" <? if($group== "group3" ){ echo "SELECTED = selected";} ?> >Group3</option>
</select>
<select name = "supplier" style="width: 100%;">
<option selected="selected">
<?php $sql_supplier = "SELECT supplier FROM catalog GROUP BY supplier";
$query_supplier = $conn->prepare($sql_supplier);
$query_supplier->execute();
$data_supp = $query_supplier->fetchAll(PDO::FETCH_ASSOC);
foreach ($data_supp as $data => $s):?>
</option>
<option value="<?php echo($s['supplier']); ?>"><?php echo($s['supplier']); ?></option>
<?php
endforeach;
?>
</select>
<select name = "product" style="width: 100%;">
<option selected="selected">
<?php $sql_product = "SELECT product FROM catalog GROUP BY product";
$query_product = $conn->prepare($sql_product);
$query_product->execute();
$data_product = $query_product->fetchAll(PDO::FETCH_ASSOC);
foreach ($data_product as $data => $p):
?>
</option>
<option value="<?php echo($p['product']); ?>"><?php echo($p['product']); ?></option>
<?php
endforeach;
?>
</select>
谁能帮我?
这是一个如何制作它的想法。
if(isset($_GET['supplier']) && !empty( $_GET['supplier'])){
$sec_query = " AND supplier = '$supplier' ";
}
if(isset($_GET['product']) && !empty($_GET['product'])){
$sec_query = " AND product= '$product' ";
}
if (isset($_GET['group']) && !empty($_GET['group'])){
$sec_query = " AND group = '$group' ";
}
$sql = " SELECT group,id,product,supplier,SUM(total) as total,date_created FROM catalog WHERE 1=1 $sec_query AND date_created > '2014' GROUP BY group,id,product,supplier,date_created ORDER BY id";
试试这个
$condition = "";
$condition = $supplier.$product.$group."AND date_created > '2014'" ;
$condition = ltrim($condition,"AND");
$sql = " SELECT group,id,product,supplier,SUM(total)as total,
date_created FROM catalog WHERE ".$condition ." GROUP BY group,id,product,supplier,date_created ORDER BY id";
我希望它会有所帮助
if (isset($_GET['group']) && !empty($_GET['group']))
{
$group = "AND catalog.group = '$group' ";
}
为什么使用 catalog.group='$group';
我认为它应该是 catalog.group=$_GET['group'];