0

1 か月の毎日をループして、1 か月の各日の結果の数を取得しようとしています。

私は次のことをしました。

<?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 に答える