点击计数器php mysql?

时间:2009-09-01 15:41:41

标签: php mysql click counter

嘿,我一直在寻找一种简单的方法来跟踪链接上的点击并存储在mysql数据库中点击链接的次数。任何人都有如何做到这一点的坚实方法?

感谢。

3 个答案:

答案 0 :(得分:3)

呀。您可以将链接转到您站点上的重定向器脚本,该脚本会将记录插入到跟踪表中,并将用户重定向到最终链接位置。

答案 1 :(得分:3)

您需要考虑的最重要的事情之一是规模 - 取决于您拥有多少用户,您可以做一些简单的事情:

初始页面创建(admin)

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。

答案 2 :(得分:1)

您可以使用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

Ajax:您可以添加onclick javascript事件来发送ajax调用,也许是相同的点击计数器脚本,然后返回true以关注链接。

Ajax方法显然需要javascript,这对你来说可能不够强大,在这种情况下,退回脚本会很好,而且真的不会引起注意