显示过去24小时内的访问次数,按小时分列

wil*_*fun 3 php mysql

每当有人第一次访问该网站时,我都会在mysql表中存储一个时间戳.

我最终看到这样的数据:

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
Run Code Online (Sandbox Code Playgroud)

我想要对这些数据做什么是创建每小时的访问次数.所以在上面的例子中,我将在第4小时到达2次访问,第5小时= 1小时,第6小时2小时,第8小时1等.

我认为最好的方法就是这样做一个for语句:

// 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;
}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎合乎逻辑......但出于某种原因......它肯定不起作用.

你会怎么做?

Ome*_*tel 6

怎么样:

SELECT hour(added), count(*) 
FROM visits 
WHERE added >= CURRENT_DATE()-1
GROUP BY hour(added)
Run Code Online (Sandbox Code Playgroud)

小时(时间):"返回时间小时.对于时间值,返回值的范围是0到23",