私は仕事用に構築しているウェブサイトの統計セクションを作成しています。私は'24時間 'グラフのための機能コードを持っています。グラフのコード私は完璧に作品を持っていますが、私はサイト使用のためにSQLとphpを使って週グラフと月グラフを作成する
毎時コード
function get_hourly_graph() {
// First lets create a daily graph for experiment then we can build on that
date_default_timezone_set('Australia/Sydney');
$current_hour = date('H');
// SQL Query to get data we want
$sql = mysql_query("SELECT hour(time_hit) AS hour , count(hour(time_hit)) AS hits FROM hits WHERE time_hit > now() - INTERVAL 1 DAY GROUP BY hour(time_hit);")
or die(mysql_error());
// Remove an hour off current time for array and the loop that will put the data into the array
$array_hour = $current_hour - 1;
// Add a 0 if the timer is under 10. just so this is compatable with the SQL data
if ($array_hour < 10) {
$array_hour = 0 . $array_hour;
}
// initialise the array so we can set up the indexes and data in the next couple of loops
$hit_data = array();
// Work back the clock 24 hours and create the array indexes
for ($i = 0; $i < 24; $i++) {
$new_hour = $current_hour;
if ($new_hour < 1) {
$new_hour = 24;
$hit_data[$new_hour] = "0";
}
else {
$hit_data[$new_hour] = "0";
}
$current_hour = $new_hour - 1;
}
// Loop through the rest of the array and replace null with 0s
while ($results = mysql_fetch_array($sql, MYSQL_ASSOC)) {
foreach ($hit_data as $hour => $hits) {
if ($results['hour'] == $hour) {
$hit_data[$hour] = $results['hits'];
}
}
}
$hit_data = array_reverse($hit_data, true);
// Generate the graph for the 24 hour data
generate_graph ($hit_data, '24 Hour Report', 'hourly_graph.png', 'Time (Hours)', 'Hits');
}
の下に「ヒット」テーブルは、基本的には時間ではなく、その後の日に基づいてデータを引き出すためにmysqlのための右のコードを取得してトラブルを抱えています'YYYY-MM-DD hh:mm:ss' = "2011-08-04 12:40:34"の下にある3つのフィールド 'hit_id' 'ip_address' 'タイムスタンプ'
どのようにsqlコードを変更しますか時間の代わりに日数を使って作業するには?
それを説明してください –