0

我试图遍历一个月中的每一天,并获取一个月内每一天的结果数。

我做了以下事情;

<?php
include 'inclues/db.inc.php';

for($i = 2; $i < 30; $i++){
    $date2 = $i-1;
    $date1 = $i;

    $q = mysql_query("SELECT * FROM `table` WHERE `date` < '2012-09-".$date1." 00:00:00' AND `date` > '2012-09-".$date2." 00:00:00'";
    //$r = mysql_fetch_assoc($q);
    echo mysql_num_rows($q)."<br />";
}

?>

如果我只是尝试回显日期 1 和 2,但如果我使用查询则不行。使用查询时,我最终会出现 500 内部服务器错误。

关于如何解决这个问题的任何想法?在循环中使用查询通常是不好的做法吗?

4

3 回答 3

3

只需执行

SELECT date, COUNT(*) from table group by date

于 2012-09-21T10:17:58.197 回答
1
SELECT * FROM `table` WHERE `date` BETWEEN $date1 AND $date2;
于 2012-09-21T10:21:29.167 回答
0

在循环中使用查询并不是一个坏习惯。

检查您的查询字符串正在变成什么,尝试在您的数据库上手动运行该查询。它可能会产生一些错误。

 $sql = "SELECT * FROM `table` WHERE `date` < '2012-09-".$date1." 00:00:00' AND `date` >      '2012-09-".$date2." 00:00:00'";
 echo $sql;
 $q = mysql_query($sql);
于 2012-09-21T10:18:09.640 回答