分两种情况,一种是前置页面统计,这个时候统计发送在点击的时候,适用于这个链接是广告链接,或者其他链接。第二种,是页面打开加入统计,这种适用于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表(地区名):
地区代码 地区名 总访问次数
1 广东省 0
2 江苏省 0
...
B表(日访问表)
地区代码 访问时间 日访问次数
1 20131224 0
8 20131224 0
C表(ip来源表)
序号 来访IP 地区代码 时间
处理流程基本上就是
1、先取用户ip,从ip库中查询出用户地区(这种代码随处可以找到,比如http://zhaoshijie.iteye.com/blog/1171132)一般就是纯真ip库,有了地区后,从A表中查出地区代码
2、向C表中添加记录
3、然后查一下B表有没有当日该地区记录,如果没有就在B表中新增一条,如果有就将B表对应的次数加1,然后A表中对应地区代码次数统计也加1
然后比如你要查2013年12月24日的各地区统计就可以是
select * from a,b where a.地区代码=b.地区代码 and b.访问时间=20131224
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)