【问题标题】:MySQL while for a date loopMySQL while 用于日期循环
【发布时间】:2013-01-08 01:01:05
【问题描述】:

我希望运行 mysql 查询并将一系列日期的匹配行数添加到数组中。为了更好地说明这一点,我有一个包含日期、客户电话号码和特定呼叫信息的数据库。我需要运行一个查询,查看过去三十天的每一天,并将该客户当天的呼叫总数添加到数组中。因此,如果我的客户今天有 20 个调用,昨天有 15 个,前一天有 10 个调用,持续 30 天,我需要一个看起来像这样的数组 [20, 15, 10 ...]。

到目前为止我有这个,但不知道如何让它每天重复并将其添加到数组中。

"SELECT COUNT(*) FROM db WHERE inbound='$client' AND calldate=$date(*this may need to go)"

感谢您的帮助

【问题讨论】:

    标签: php mysql loops


    【解决方案1】:

    您可以使用GROUP BY calldate 来解决通话日期的计数:

    SELECT calldate, COUNT(*) FROM db
      WHERE inbound='$client'
      GROUP BY calldate ORDER BY calldate DESC
    

    为了您的安全,我将calldate 添加到查询中。想象一下客户昨天没有打电话,那么你不想跳过那一天。确保从您的 php 代码中检查calldate

    编辑:

    这是一篇博文,展示了如何在 php 中循环遍历结果集的示例: http://blog.mclaughlinsoftware.com/2012/07/14/phpmysql-query/

    【讨论】:

    • 如何获取包含数据的数组?
    • 这非常适合显示所有的通话时间。我现在挂断电话的是,我也需要显示没有电话(或那天没有条目)的日子。因此,如果我昨天没有电话,因此在该日期没有条目,我怎么能在那天显示“0”。有没有办法每天查询并显示每天的结果,不管有没有来电?
    • 是的,但您也可以将calldate 与循环中的预期日期进行比较,并且对于不是预期日期的每一天,显示“0”。
    • 对php的新方面有点抱歉。我现在有这个,我将如何将您上面所说的融入其中? $result = mysql_query($query); $数据 = 数组();而 ($row = mysql_fetch_row($result)) { $data[] = $row[0]; }
    猜你喜欢
    • 2013-11-21
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 2020-12-26
    • 2012-06-29
    • 2021-12-12
    相关资源
    最近更新 更多