[英]Product filter - count products
我在php,mysql和jquery中做了一个简单的产品过滤器。 我有一个名为“ spec_laptop”的数据库,我在名为“ brand”的列之后选择产品。 看起来像在这里 ,当我检查显示具有该“品牌”的产品时。 我想每一个复选框选项前添加,即在数据库中这个“品牌”产品的数量是这样 。
代码:PHP:
<?php
include ('connect.php');
if (isset($_POST["toshiba"])) {
$arguments[] = "brand LIKE '%Toshiba%'";
}
if (isset($_POST["lenovo"])) {
$arguments[] = "brand LIKE '%Lenovo%'";
}
if (isset($_POST["samsung"])) {
$arguments[] = "brand LIKE '%Samsung%'";
}
if(!empty($arguments)) {
$str = implode(' or ',$arguments);
$qry = "SELECT * FROM spec_laptop where " . $str . " ORDER BY id desc";
$row=mysql_query($qry) or die("Unable to select");
while($data = mysql_fetch_array($row))
{
echo $data['procesor']." ";
}
} else {
echo "nothing";
}
?>
HTML和JAVASCRIPT:
<html>
<head>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<form id="form" method="post" action="">
<input type="checkbox" name="toshiba" class="checkbox" <?=(isset($_POST['toshiba'])?' checked':'')?>/>Toshiba<?php ?><br>
<input type="checkbox" name="lenovo" class="checkbox" <?=(isset($_POST['lenovo'])?' checked':'')?>/> Lenovo<br>
<input type="checkbox" name="samsung" class="checkbox" <?=(isset($_POST['samsung'])?' checked':'')?>/>Samsung<br>
</form>
<script type="text/javascript">
$(function(){
$('.checkbox').on('change',function(){
$('#form').submit();
});
});
</script>
</body>
</html>
要在查询中获得计数,请更改为:
$qry = "SELECT * FROM spec_laptop where " . $str . " ORDER BY id desc";
至:
$qry = "SELECT *, count(id) as 'count' FROM spec_laptop where " . $str . " GROUP BY brand ORDER BY id desc";
您的HTML代码似乎在php文件中,因为您也在其中使用php短代码。 因此,我建议使用php通过选择查询和循环显示选项。 可以使用与上述查询类似的查询:
<?php
$qry = "SELECT brand as 'brandname', count(id) as 'count' FROM spec_laptop where " . $str . " GROUP BY brand ORDER BY id desc";
$row=mysql_query($qry) or die("Unable to select");
?>
<form id="form" method="post" action="">
<?php
while($data = mysql_fetch_array($row))
{
?>
<input type="checkbox" name="<?php echo $data['brandname'];?>" class="checkbox" <?php (isset($_POST['toshiba'])?' checked':'') ?>/><?php echo $data['brandname'] . ' [' . $data['count'] . ']';?><br>
<?php
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.