PHP For循环到日期范围不起作用

时间:2012-09-21 10:13:37

标签: php mysql for-loop

我试图在一个月内每天进行循环,并在一个月内获得每天的结果数量。

我做了以下事情;

<?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内部服务器错误。

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

3 个答案:

答案 0 :(得分:3)

执行

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

答案 1 :(得分:1)

SELECT * FROM `table` WHERE `date` BETWEEN $date1 AND $date2;

答案 2 :(得分: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);