私は報告をする必要があります。レポートは、ユーザーがターミナルのどこをクリックしたかを経時的に追跡します。これらのクリックは、DB の 2 つのテーブルに保存されます。日付範囲をループして 1 時間ごとにレポートを作成するための洗練されたソリューションを見つける必要があります。
時間をかけてループするのが最善かつ最もエレガントな方法で立ち往生しています(レポートには、その時間にクリックが記録されていなくても、00:00 から 23:00 までの時間が表示されます)。
だから私の出力は(例として)
00:00 - 34 clicks
01:00 - 22 clicks
02:00 - 91 clicks
03:00 - 4 Clicks
...
...
23:00 - 17 Clicks
PHP $startHour = 00:00; で 2 つの変数を宣言することを考えていました。$endHour = $startHour + 01:00;
$startHour unitl をインクリメントするループを実行すると、終了時間と一致しましたが、このように時間変数をインクリメントできるかどうかはわかりません。
日付は次の形式で保存されます: 2012-11-22 09:17:29
これが私のmysqlクエリです:
SELECT tbl_xboxstats.sessionend_date,
tbl_xboxstatsaux.XboxStatsId,
tbl_xboxstatsaux.ItemId,
tbl_xboxstats.UnitId,
tbl_xboxstats.UIId,
WEEK( tbl_xboxstats.sessionend_date ) AS WeekNumber,
Count(tbl_xboxstatsaux.ItemId) AS Count
FROM tbl_xboxstats
INNER JOIN tbl_xboxstatsaux ON tbl_xboxstats.id = tbl_xboxstatsaux.XboxStatsId
WHERE tbl_xboxstats.sessionend_date
BETWEEN '2012-11-22 "' . $startHour . '"'
AND '2012-11-22"' . $endHour . '"'
GROUP BY tbl_xboxstatsaux.XboxStatsId
LIMIT 0 , 30