首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何循环使用mySQL查询返回数组

问如何循环使用mySQL查询返回数组
EN

Stack Overflow用户
提问于 2017-09-18 01:45:56
回答 2查看 358关注 0票数 1

我对SQL还是很陌生的,我已经成功地使用了一个查询来获取我想要的数据。我希望能够选择一天的记录和,我可以使用PHP访问它

代码语言:javascript
复制
<?php 
    $sql = $pdo->prepare("select count(*) from `Visits` where 
    date(`Date`)=date(date_sub(now(),interval 1 day))");
    $sql->execute();
    $result = $sql->fetch(PDO::FETCH_ASSOC);
    echo $result['count(*)'];
?>;

数据返回昨天的记录。问题是,我希望能够在一定的时间内(最后7天和最后30天)完成这一任务,并且认为多次重复上面的代码是不可行的。

任何关于调整查询以返回一个数组(我可以获取所有这些值)的帮助都是非常有用的!如果数组可以取值“前一天的数目”并在当天返回记录的数量,这将是理想的。

编辑:,我仍然需要它在没有记录的日子里返回0。

EN

回答 2

Stack Overflow用户

发布于 2017-09-18 01:59:52

您可以尝试使用时间戳:

代码语言:javascript
复制
<?php 
    $last_days = 7;
    $sql = $pdo->prepare("select count(*) as count from `Visits` where 
    UNIX_TIMESTAMP(`Date`) < UNIX_TIMESTAMP() AND UNIX_TIMESTAMP(`Date`) > UNIX_TIMESTAMP() - 60 * 60 * 24 * $last_days");
    $sql->execute();
    $result = $sql->fetch(PDO::FETCH_ASSOC);
    echo $result['count'];
?>;
票数 1
EN

Stack Overflow用户

发布于 2017-09-18 02:03:34

如果您想要一个具有每天结果的表,则需要修改SQL查询,以返回一个表,该表包含每天的日期和计数。为此,请将日期作为另一列,并按日将结果分组。

代码语言:javascript
复制
<?php 
    $last_days=7
    $sql = $pdo->prepare("select count(*) as `count`,date(`Date`) as `day` from `Visits` where 
    date(`Date`) > date(date_sub(now(),interval ? day)) GROUP BY date(`Date`)");
    $sql->execute(array($last_days));
    while($result = $sql->fetch(PDO::FETCH_ASSOC)) {
       echo $result['count']. " for day:" . $result['day']." <br>\n";
    }
    ?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46270505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档