如果值为空,则不要查询SQL字符串

时间:2017-04-13 13:40:35

标签: php mysql

我有两个下拉菜单,当您选择一个值时,该值将保存在会话中并通过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的新手,所以请你好...

1 个答案:

答案 0 :(得分:1)

使用不带WHERE子句的查询。然后检查$i是否为空,空或空格。如果是这样,请在查询中添加WHERE子句。

$query = "SELECT COUNT(".$q.") c FROM MirrorWebProductsExpanded";
if($i != "")
    $query = $query." WHERE Subcategorie = '".$i."'";