2009-09-01 110 views
2

嘿,我一直在尋找一種簡單的方法來跟蹤點擊鏈接並存儲鏈接被點擊了多少次在mysql數據庫中。任何人如何做到這一點都有一個堅實的方法?Click counter php mysql?

謝謝。

回答

3

是的。您可以將鏈接轉到您網站上的重定向器腳本,該腳本會將記錄插入到跟蹤表中,並將用戶重定向到最終鏈接位置。

2

一個你需要考慮的最重要的事情是規模 - 這取決於你有多少用戶,那麼你可以做一些簡單的:

初始頁面創建(管理員)

INSERT INTO visit_track_table (id, count, url) VALUES (1, 0, 'page.php'); 

頁面更新(用戶)

UPDATE visit_track_table SET count=count+1 WHERE url='page.php'; 

這裏的問題是,該行必須鎖定每頁訪問者。

一個更好的方法是定義一個可定期重新計算的可擴展分段以提供總體總量。最簡單的方法是提供一個隨機後綴,以便更少的併發用戶鎖定相同的數據庫行。

可擴展

UPDATE visit_track_table SET count=count+1 WHERE url='page.php-N' 

在這個查詢中-N後綴將由調諧參數,將範圍從生成「-0」到「-100」如果你想分配每頁100行。 N的最佳值取決於您的用戶羣。

理貨(由cron作業應該定期做)

SELECT SUM(count) AS M FROM visit_track_table WHERE url LIKE 'page.php-%' 

UPDATE visit_track_table SET count=M WHERE url='page.php' 

編輯:是的,你需要有哪些記錄您前往該URL的中間頁。

1

您可以使用Ajax或反彈頁:

彈跳:鏈接轉發給計數器腳本一樣,http://www.your-domain.com?click_count.php?forward=http://another-domain.com/destination.html

使用SQL像INSERT INTO clicks ('http://another-domain.com/destination.html',1) ON DUPLICATE KEY UPDATE clicks=clicks+1

阿賈克斯:你可以添加一個onclick JavaScript事件發送ajax調用,也許是相同的點擊計數器腳本,然後返回true以跟隨鏈接。

的Ajax方法需要JavaScript顯然這可能不是足夠強大的你在這種情況下,反彈腳本將做精,這將是無法察覺真的

+0

我喜歡使用反彈鏈接,並逐步提高使用的想法AJAX(並重寫鏈接)。這是個人偏好,但我不喜歡在狀態欄中看到這個醜陋的URL(透明度消除了我對網絡釣魚和其他無禮的厭倦)。 – 2009-09-02 10:08:40

+0

是的,這是個好消息,可以稱爲HiJax方法 – 2009-09-02 11:39:00