如果在WHILE中,数据库结果不起作用

时间:2018-07-13 11:54:44

标签: php mysql if-statement while-loop fetch

我有一个简单的售票注册系统,其中包含6种类型的票和3个不同的“实际”销售地点。每个订单都作为一行插入数据库中,并存储每种票证的数量以及销售地点,总成本和日期时间戳。

我想显示在给定时间范围内售出的每种票证的总金额以及这些票证的总费用。我也想根据销售地点过滤结果。

这是我的数据库查询:

"SELECT SUM(ticketType1), SUM(ticketType2), SUM(ticketType3), 
        SUM(ticketType4), SUM(ticketType5), SUM(ticketType6), 
        SUM(cost), saleLocation 
 FROM `orders` 
 WHERE time BETWEEN '2018-07-10 07:00:01' 
            AND '2018-07-11 07:00:00'"

然后将其显示在HTML表格行中:

<?php 
while ($row = $result->fetch_assoc()) {
    if($row["saleLocation"] == 'location1') { ?>
        <div class="cell">
            <?php echo $row["SUM(ticketType1)"] ?>
        </div>

        <div class="cell">
            <?php echo $row["SUM(ticketType2)"] ?>
        </div>

        <div class="cell">
            <?php echo $row["SUM(ticketType3)"] ?>
        </div>

        <div class="cell">
            <?php echo $row["SUM(ticketType4)"] ?>
        </div>

        <div class="cell">
            <?php echo $row["SUM(ticketType5)"] ?>
        </div>   

        <div class="cell">
            <?php echo $row["SUM(ticketType6)"] ?>
        </div>

        <div class="cell">
            <?php echo number_format($row["SUM(cost)"], 0, "", "."); ?>
        </div>

    <?php } //end if

 } // end while
?>

它可以工作,但是我试图在WHILE循环中使用IF语句根据位置过滤结果,但是IF语句似乎没有任何作用,而是显示所有3个位置的结果。 我知道我可以轻松地修改查询以实现此目的,但是我不希望在这种特定情况下这样做。

我猜问题仍然存在于查询中吗?

我们将不胜感激。

0 个答案:

没有答案