我有两个下拉菜单,当您选择一个值时,该值将保存在会话中并通过AJAX传递以更新div。我有这个工作。
我在会话中保存值的原因是因为我需要动态填充(构造)数据库查询。此刻我有以下代码:
<?php
$q = $_GET['q'];
$_SESSION['theme'] = $q;
$i = $_SESSION['category'];
$query = "SELECT COUNT(".$q.") c FROM MirrorWebProductsExpanded WHERE Subcategorie = '".$i."'";
$result = mysqli_query($conn,$query);
$row = mysqli_fetch_assoc($result);
echo "
<a href='http://example.nl/search/'>" . $row['c'] . "</a>";
?>
这会计算$q
中所有项目,这是第一个下拉菜单的值。
而WHERE Subcategorie = '".$i."'
,$i
是第二个下拉菜单中的值。
但是,现在问题。如果第二值为空(我没有从该下拉菜单中选择一个选项),则查询仍会将此部分添加到查询中,例如:
$query = "SELECT COUNT(".$q.") c FROM MirrorWebProductsExpanded WHERE Subcategorie = ''";
。
这使得第一个下拉菜单中的计数始终显示为0
。当第二个下拉菜单中有值时,是否仅添加WHERE Subcategorie = '".$i."'
?
我仍然是MySQL的新手,所以请你好...
答案 0 :(得分:1)
使用不带WHERE
子句的查询。然后检查$i
是否为空,空或空格。如果是这样,请在查询中添加WHERE
子句。
$query = "SELECT COUNT(".$q.") c FROM MirrorWebProductsExpanded";
if($i != "")
$query = $query." WHERE Subcategorie = '".$i."'";