3

嘿,我一直在寻找一种简单的方法来跟踪链接的点击次数,并在 mysql 数据库中存储该链接被点击的次数。有人对如何做到这一点有可靠的方法吗?

谢谢。

4

3 回答 3

3

您需要考虑的最重要的事情之一是规模 - 根据您拥有的用户数量,您可以做一些简单的事情,例如:

初始页面创建(管理员)

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。

于 2009-09-01T15:53:27.183 回答
3

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

于 2009-09-01T15:48:52.870 回答
1

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

Bounce:链接转发到一个计数器脚本,例如, http://www.your-domain.com?click_count.php?forward=http://another-domain.com/destination.html

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

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

Ajax 方法显然需要 javascript,这对您来说可能不够健壮,在这种情况下,弹跳脚本会很好,而且真的不会引起注意

于 2009-09-01T15:54:24.077 回答