用php+mysql如何统计超链接被点击的次数
分两种情况,一种是前置页面统计,这个时候统计发送在点击的时候,适用于这个链接是广告链接,或者其他链接。第二种,是页面打开加入统计,这种适用于SEO或者其他的需要,统计当前页面到底有多少点击率,不受前置页面影响。
在链接里面加一个hook。比如
<a href="页面链接" onclick="countHit(this)">链接文字</a>
然后定义一个js函数
function countHit(obj){
var url = $(obj).attr('href');
//这里我使用jq,以链接为标准。当然对于广告可以以
//广告id为统计 的标准
$.ajax({
url : '你作为统计的php页面地址';
type : 'post',//使用post是防止浏览器直接输入这个地址而被刷
data:{link:url}//把链接地址post传过去
});
}
在php页面
$link = addslashes($_GET['link']);//安全处理下,让link能正常存入
//接下来做有效性判断,这里省略
$query = mysql_query("SELECT 1 FROM `统计表` WHERE `link`='$link'");
$has = mysql_fetch_array($query);
if($has){
//当前存在统计
mysql_query("UPDATE `统计表` SET hits=hits+1 WHERE `link`='$link'");
}else{
mysql_query("INSERT INTO `统计表` (link,hits) VALUE('$link','1')");
}
这样就完成了统计内容
当前页面统计
一般这种统计为某种信息内容的统计,我这里假设是某一条新闻的统计,这个信息里面有个hits字段作为统计
只要在php页面里面加上
mysql_query("UPDATE `新闻表` SET hits=hits+1 WHERE `id`='新闻id'");
这一句就可以完成统计了
<a href="www.baidu.com" onclick="fun(这里给一个值,用于标识该链接为baidu)“>链接到百度</a>
function fun(id){
这里通过 ajax发送标识到后台入库
}
具体ajax这里就不写了,你网上搜一下,很多的
比如<a href="1.php?id=aaa">链接</a>
在1.php里写
if($_get[id]=='aaa')
{
数据库里的某个数据 +1
为了防止刷新可以再加个session变量判断
}
思路就这样,自己多动手