vendredi 13 juillet 2018

IF inside WHILE with database result not working

I have a simple ticket sale registration system with 6 types of tickets and 3 different "physical" sales locations. Each order is inserted as a row in the database and stores the amount of each type of ticket along with the sale location, total cost and a datetime timestamp.

I want to display the total amount of each ticket type, that was sold within a given time frame along with the total cost of those tickets. I also want to filter the results based on sale location.

This is my db query:

"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'"

Then I display it in a HTML table row:

<?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 } } ?>

It works, but I'm trying to use an IF statement inside the WHILE loop to filter the result based on location, but the IF statement doesn't appear to have any effect. I know I can easily modify the query to achieve this, but I would rather not do that in this specific case.

I'm guessing that the problem lies in the query?

Some help would be greatly appreciated.

Aucun commentaire:

Enregistrer un commentaire