簡體   English   中英

單擊計數器php mysql嗎?

[英]Click counter php mysql?

嘿,我一直在尋找一種簡單的方法來跟蹤鏈接的單擊並在mysql數據庫中存儲鏈接被單擊的次數。 有人對如何做到這一點有扎實的態度嗎?

謝謝。

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

您需要考慮的最大事情之一就是規模-根據您擁有的用戶數量,您可以執行以下簡單操作:

初始頁面創建(管理員)

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'

在此查詢中,如果要為每頁分配100行,則-N后綴將由調整后的參數生成,該參數的范圍從'-0'到'-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。

您可以使用ajax或退回頁面:

跳出:鏈接會轉發到計數器腳本,例如http://www.your-domain.com?click_count.php?forward=http://another-domain.com/destination.html

使用INSERT INTO clicks ('http://another-domain.com/destination.html',1) ON DUPLICATE KEY UPDATE clicks=clicks+1類的sql進行INSERT INTO clicks ('http://another-domain.com/destination.html',1) ON DUPLICATE KEY UPDATE clicks=clicks+1

Ajax:您可以添加一個onclick javascript事件以向其發送ajax調用,也許是相同的click counter腳本,然后返回true以跟隨鏈接。

Ajax方法顯然需要javascript,這可能對您來說不夠強大,在這種情況下,退回腳本會很好用,並且確實不會引起注意

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM