看了网上很多统计都是使用文本来存储信息的,但是那样的话非常不方便,而且如果数据丢失了的话就很麻烦,如果存储在数据库里的话就比较好,把WEB服务器和数据库服务器分开的话,那么就能够长期的保持访问统计的数据了。
基本访问统计包括:日访问量、月访问量、总访问量、平均访问量、日最高访问量等等数据
那些数据主要是关于时间的运算,为了方便运算,我们采用Unix时间戳是最方便合理的,下面我简单的说以下我实现统计的代码。
数据库结构:
#
# 访问统计表
#
DROP TABLE IF EXISTS `st_accesscount`;
CREATE TABLE `st_accesscount` (
`access_id` int(11) unsigned NOT NULL auto_increment,
`session_id` varchar(100) NOT NULL default '',
`access_time` int(20) NOT NULL default '0',
`access_ip` varchar(100) default NULL,
`access_source` varchar(100) default NULL,
`access_page` varchar(255) default NULL,
`access_os` varchar(100) default NULL,
`access_browse` varchar(100) default NULL,
PRIMARY KEY (`access_id`)
);
实现代码:
我把核心代码写出来,其他显示层代码和复杂计算自己想想,呵呵 :-)
<?php
/*********************************************
* 文件:count.php
* 用途:网站访问统计页
* 版本:v1.0
* 创建:2005-04-06 17:08
* 修改:2005-04-06 17:14
* 版权:heiyeluren
*********************************************/
/* 网站访问量统计 */
/* 基本变量 */
// 当前时间
$cur_date = date("Y年m月d日 H:i:s");
$time = time();
// 把当前时间单独取出
$c[y] = date("Y");
$c[m] = date("m");
$c[d] = date("d");
$c[h] = date("H");
$c[i] = date("i");
$c[s] = date("s");
// 今日访问量
$today = mktime(0,0,0);
$db->query(" SELECT * FROM st_accesscount WHERE access_time>=$today AND access_time<=$time ");
$today_count = $db->nf();
// 昨日访问量
$yesterday = mktime(0,0,0,$c[m],$c[d]-1,$c[y]);
$db->query(" SELECT * FROM st_accesscount WHERE access_time>=$yesterday AND access_time<=$today ");
$yesterday_count = $db->nf();
// 本月访问量
$month = mktime(0,0,0,$c[m],1,$c[y]);
$db->query(" SELECT * FROM st_accesscount WHERE access_time>=$month AND access_time<=$time ");
$month_count = $db->nf();
// 总统计天数
$db->query(" SELECT MIN(access_time) AS ago_time FROM st_accesscount ");
while($db->next_record())
{
$ago_time = $db->f("ago_time");
}
$day = ($time-$ago_time)/60/60/24;
(($day-floor($day)) > 0) ? ($all_day = floor($day)+1) : ($all_day = floor($day));
// 总访问量
$db->query(" SELECT * FROM st_accesscount ");
$all_count = $db->nf();
// 日均访问量
$day_access = round($all_count/$all_day, 1);
?>
上面的代码比较清晰,自己慢慢琢磨,恩,另外说一句,上面使用了phplib的db类库。。。
分享到:
相关推荐
php利用mysql保存session的实现思路及示例代码.docx
修改了原来的访问统计差价的代码,用memcache进行数据存储,既解决了并发问题,又解决了服务器不同步问题。
统计功能:综合统计,最近访问,年报表,月报表,周报表,日报表,历史报表,地区分析分析功能:地址分析,IP地址,链接页面,访问次数,操作系统,浏览器,屏幕大小 维护功能: 密码修改,本地区选择,IP刷新网页时间间隔设置,计数器...
PHP+MySQL实现的图书管理系统项目【源代码+使用说明】 项目使用说明: bms文件夹里面全部都是MySQL数据库文件不要随意改名 将bms整个文件夹复制粘贴到xampp安装路径下的mysql文件夹里的data文件夹里面, 如我的路径...
这个我花了5个资源分下载的,看到里面的功能非常全分享给和我一样的新手学习,本套源码是利用ADO接口访问mysql数据库,代码注释清晰值得学习,下载后留言
<php+mysql>PHP基础,使用PHP访问表单数据
vc++_利用ADO访问MYSQL数据vc++_利用ADO访问MYSQL数据vc++_利用ADO访问MYSQL数据vc++_利用ADO访问MYSQL数据vc++_利用ADO访问MYSQL数据vc++_利用ADO访问MYSQL数据vc++_利用ADO访问MYSQL数据vc++_利用ADO访问MYSQL数据...
PHP和MYSQL分页代码,带有数据库. 可以实现数据分页
小白利用PHP+MYSQL+HTML做的期末小项目,做的不好大家勿喷,还请多多指正。 用的是以前模仿做的HTML淘宝网静态页面,接连上数据库加入图片和信息,实现后台与前端的连接,实现了增删改查功能美化做的不好还请大家勿...
基于PHP+MySQL实现用户注册登录功能 一、 开发环境 ...本案例使用PHP 7中的PDO数据对象对MySQL数据库进行查询和插入操作,从而实现用户的登录和注册,同时用户登录成功后,通过Session实现用户状态保持。
依国家统计局2023年度全国统计用区划代码和城乡划分代码(更新维护的标准时点为2023年09月11日)生成的MySQL数据(字段包含:行政区划代码,行政区划,行政区划-全称,行政区划代码-省,行政区划-省,行政区划代码-市,...
新闻php代码,使用php环境加phpmysql写的,仅供初学者
选择的案例是作者实践的结晶,能提高读者学习的积极性和效率,通过学习这些案例,读者能够掌握《PHP+MySQL动态网站开发》的精髓,并可以直接应用到动态网站的实际开发中。 《PHP+MySQL动态网站开发》内容丰富,语言...
php大作业 php+mysql成绩管理系统,基于PHP和MySQL数据库实现的学生成绩管理系统
2017年统计用区划代码和城乡划分代码 MySQL文件(截止2017年10月31日)
PHP+MYSQL分页代码
这是源代码,下载后需要修改工程的include和lib方可使用
主要介绍了利用mysql实现的雪花算法案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysql和很多不同的客户程序和库组成。由于其源码的开放性及稳定性,且与网站流行编徎语言PHP的完美结合,现在很多站点都利用其当作后端数据库,使其...
bms文件夹里面全部都是MySQL数据库文件不要随意改名 将bms整个文件夹复制粘贴到xampp安装路径下的mysql文件夹里的data文件夹里面, 如我的路径即是D:\xampp\mysql\data\bms,接着打开数据库管理界面刷新即可, 而...