2011-10-22 40 views
4

平臺:PHP5中,MySQL跟蹤網頁瀏覽和顯示每天,每週,每月的結果

我有一個顯示被整理到類別物品的網站。我想跟蹤每篇文章的觀看次數。然後,在側邊欄中,顯示當天前5個文章的查看文章,過去溫文爾雅,上個月內的文章。你認爲最好的方法是什麼?每個視圖的數據庫中有一行(article_id,timestamp)?服務器的最少工作量是多少?

謝謝,喬

回答

0

如何:

添加此爲php.ini

auto_append_file = /server_root/footer.php 

footer.php含有一種無聲的程序來編寫SQL數據。

+0

我會使用PHP的$ _SERVER變量來填充客戶端和頁面數據,然後寫入該行。然後,側面板可以通過使用SQL查詢來顯示訪問次數,該查詢按文章ID進行過濾,並使用mysql_num_rows()對其進行計數 – Tim

2

這可能會成爲一個棘手的問題。如果您只存儲原始匹配,您的表格將快速增長,並且處理這些數字會變得更加耗時。所以,處理這個問題的一種方法是創建聚合表並使用cron作業來處理數字。

例如,你可以有以下表

  • hit_count:的article_id,時間戳
  • hit_count_daily:天,一年,ARTICLE_ID,hit_count
  • hit_count_weekly:周,一年,article_id,hit_count
  • hit_count_monthly:個月,一年,ARTICLE_ID,hit_count
  • hit_count_yearly:年,ARTICLE_ID,hit_count

然後處理在hit_count表中的數據,將其添加到總表,然後刪除該數據hit_count表。

您還需要考慮如果某人刷新頁面或Google抓取文章會發生什麼情況。你想把這些作爲點擊數嗎?

爲了防止抓取工具觸發點擊,您可以使用頁面上的一些Javascript語言來與您的服務器進行通信並註冊點擊。這樣,一個普通的瀏覽器將觸發命中,但爬蟲不會。

你也可以卸載這個任務交給其他服務,如ChartbeatClicky