誰かがサイトに初めてアクセスするたびに、タイムテーブルをmysqlテーブルに保存しています。過去24時間の訪問数を時間で表示する
私はこのようになりますデータを巻き上げる:イムは、このデータをどうしたい何
2009-08-02 04:08:27
2009-08-02 04:07:47
2009-08-02 05:58:13
2009-08-02 06:28:23
2009-08-02 06:34:22
2009-08-02 08:23:21
2009-08-02 09:38:56
は、各時間に陥るの訪問の数を作成することです。上記の例では、2回目の訪問で5時間目= 1、6時間目2、8時間目1などの4時間目に到着します。
これを行う最善の方法は、次のようなステートメント:
// a 24 hour loop
for($i = 24; $i > -1; $i--) {
// the query for each hour
$sql = 'SELECT * FROM visits WHERE (DATE(added) = DATE_SUB(CURRENT_DATE(), INTERVAL ' . $i . ' HOUR))'
$res = mysql_query($sql);
$count = mysql_num_rows($res);
// store the number of rows for this loop in the array
$visits[] = $count;
}
私には論理的ですが...何らかの理由で...間違いなく動作しています。
どうすればよいですか?
私はちょうど私がやっていたものに比べて上記の方法に少し問題を追加したいと思っています。私は2つの配列を作成しています。 1にその時間の名前が表示され、1にはその時間の訪問数が表示されます。 ここでの方法を使用すると、時間通りの訪問がなかった場合、私は時間がありません: "12AM"、 "01AM"、 "04AM"、 "05AM"、 "07AM"、 "08AM" 「01PM」「05PM」「05PM」「01PM」「08PM」「09PM」「10PM」「11PM」 の順に表示され、 : 10,1,19,3,1,3,1,3,10,1,1,3,1,6,1,2,2,4 だから私は出てくると思います24時間のうち4時間は訪問がなかった。理想的には、私は空の時間のためのカウント0を取得したいと思います – willdanceforfun
私はこの特定の問題のためにやったトリックは0から23までの値を含む時間テーブルを作成し、空白。それは汚い小さなトリックですが、それはかなりうまく動作します。 – OmerGertel
@OmerGertel:それは解決策です。 PHPで結果を繰り返し処理するだけでなく、 "欠けている時間"を追加することでパフォーマンスが向上するかもしれません(これは、使用前にresulsetを "パッチ"するためのPHPコードを意味します) –