来自我的数据库的每日报告

时间:2015-12-04 08:40:24

标签: php html mysql

大家好,我从我的数据库生成每日报告,并在表格中显示。我的代码是:

<table class="table table-striped m-b-none" id="stats">
    <thead>
        <tr>
            <th>Date</th>
            <th>Total</th>
        </tr>
    </thead>
    <tbody>
    <?php
    try
    {
    if($_POST["submit"]{
        $stmt = $DB_con->prepare("SELECT Date(time) AS date, COUNT(*) AS total FROM branches GROUP BY date;");
        $stmt->execute();
            foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row){
                $date = $row['date'];
                $count = $row['total'];

    ?>
    <tr>
        <td><?php echo $date; ?></td>
        <td><?php echo $count; ?></td>
    </tr>
    <?php 
            }
    }
    $conn=null;
    }catch(PDOException $e){
        echo "error  " . $e->getMessage();
    }
    ?>
    </tbody>
</table>

我得到的输出是:

  • 2015/10/26:10
  • 2015/10/27:5

但我不想只有我记录的那一天,我想要一整个月的那一天。我希望我的桌子像这样:

  • 2015/10/26:10
  • 2015/10/27:5
  • 2015/10/28:0
  • 2015/10/29:0
  • 2015/10/30:0 等。

我怎么能这样做?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过循环使用日期来实现此目的。使用日期作为增量。

<?php

    // Start date
    $date = '2009-12-06';
    // End date
    $end_date = '2020-12-31';

    while (strtotime($date) <= strtotime($end_date)) {
                echo "$date\n";
                $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
    }

?>

这将打印您希望开始日期到结束日期的日期。

根据你的代码,我建议你创建一个像

这样的函数
function increaseDate($date = null){
   return $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
}

并从循环内部调用它。阅读Php Date了解日期格式。