PHP+MYSQL 如何准确实现页面访问统计次数

PHP+MYSQL 如何准确实现页面访问统计次数,第1张

分两种情况,一种是前置页面统计,这个时候统计发送在点击的时候,适用于这个链接是广告链接,或者其他链接。第二种,是页面打开加入统计,这种适用于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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7259164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存