2010-03-07 35 views
0

我有一個在線詞典。所有輸入都保存在表格「id-word-unixtime」中。現在我想統計在一天中搜索了多少單詞,然後製作包含該數據的圖表或表格。表中的事件unixtime到日統計

什麼是最好的方法來存檔這個?我應該再換一張日期表還是寫一個PHP腳本?

我只是需要基本的方向。

回答

1

那裏有很多問題,但您似乎關心的主要問題是從unixtime獲取日期。

MySQL有FROM_UNIXTIME()

像這樣的東西應該讓你開始:

SELECT FROM_UNIXTIME(unixtime,'%Y-%m-%d') as the_date, 
     count(word) as word_count 
    FROM table 
-- add conditions here 
GROUP BY 1; 

如果您對數據呈現特定於PHP的問題,我建議你打開另外一個問題。

1

您可能想計算一次答案,然後緩存結果,以減少服務器上的負載。一旦一天結束,您只需計算一次所有的統計數據。

對一件事情重要的事情是當一天開始和結束時。如果您的網站有來自全球的訪問者,那麼您應該使用UTC。如果95%的訪客來自美國,東部時間可能會更有意義。

0

你說得對,這是一個非常基本的SQL查詢。喜歡的東西

SELECT word, count(word) FROM table 
WHERE unixtime BETWEEN (starttime AND endtime) GROUP BY word 

您可以在任何PHP或MySQL計算starttimeendtime

當然,您需要編寫一個PHP腳本來繪製圖形,但這是另一個問題。

1
SELECT COUNT(*), FROM_UNIXTIME(unixtime, '%Y-%M-%D') 
FROM table 
WHERE unixtime BETWEEN $start AND $end 
GROUP BY FROM_UNIXTIME(unixtime, '%Y-%M-%D') 

這應該會讓你每天搜索每一天。這是一個相當昂貴的搜索,所以你可能想緩存它。