看了网上很多统计都是使用文本来存储信息的,但是那样的话非常不方便,而且如果数据丢失了的话就很麻烦,如果存储在数据库里的话就比较好,把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学生成绩查询系统(源代码+论文)”文件包含了系统的全部源代码和相关设计论文。源代码可以帮助开发者理解系统实现细节,学习PHP和MySQL的结合应用;论文则详细阐述了系统的设计思路、技术选型、...
在源代码中,开发者可能会使用MVC(模型-视图-控制器)设计模式来组织代码,使程序结构清晰,便于维护。同时,论文部分可能详细论述了系统的设计思路、技术选型、实现过程以及遇到的问题与解决方案,对于学习和理解...
同时,附带的论文可能详细介绍了系统的开发背景、设计思路、技术选型、功能实现和未来改进方向,为读者提供了理论指导。 总之,《PHP+MySQL学生成绩查询系统》是一个实用的教育信息化工具,其源代码和论文资源对...
这个系统利用PHP编程语言和MySQL数据库技术,实现了高效、便捷的成绩录入、查询、统计等功能,是教育机构进行教学管理的实用工具。 一、PHP技术 PHP(Hypertext Preprocessor,超文本预处理器)是一种开源的服务器...
开发者可能利用了PHP的面向对象特性,如类和对象,来实现更结构化的代码组织。 2. MySQL数据库:MySQL是关系型数据库管理系统,用于存储和检索教材管理系统的数据,如教材信息、库存状态、订单详情等。开发者可能...
论文可能涉及系统的需求分析、设计思路、实现技术、性能评估以及对未来改进的展望,深入讨论了如何利用PHP和相关技术解决产品报价管理中的实际问题。 总结,本系统利用PHP的灵活性和强大功能,构建了一个全面的产品...
它将阐述如何利用MVC(Model-View-Controller)设计模式分离业务逻辑、视图和数据,以及如何优化数据库查询、提高安全性等方面的设计思路。 总的来说,这个PHP教材管理系统不仅提供了完整的源代码供学习和参考,还...
1. MVC(Model-View-Controller)模式:将业务逻辑、数据和界面展示分离,提高代码的可维护性和可扩展性。 2. PDO(PHP Data Objects):用于安全地访问数据库,防止SQL注入攻击。 3. AJAX:实现页面无刷新的数据...
9. **前端技术**:虽然主要讨论PHP,但源码中还会包含HTML、CSS和JavaScript,用于构建用户界面和实现交互效果。可能使用了Bootstrap或其他前端框架来快速构建响应式布局。 10. **API接口**:源码可能包含了与其他...
在实现过程中,通常会采用Model-View-Controller (MVC) 设计模式,将业务逻辑、视图呈现和数据控制分离,提高代码的可读性和可维护性。同时,为了存储用户信息和课程数据,会使用关系型数据库,如MySQL,通过Java的...
- PHP框架:论文提到了框架在PHP开发中的重要性,如CakePHP、Symfony和CodeIgniter等,它们有助于快速开发和保持代码一致性。 - 模板引擎:如Smarty,将业务逻辑与视图层分离,简化代码,便于维护和调整。 - 代码...
- **数据库交互**:使用PDO或MySQLi扩展与MySQL数据库进行交互,执行SQL语句,实现数据的CRUD操作。 - **模板引擎**:可能使用Twig或其他模板引擎,将视图与控制器分离,简化HTML输出。 - **表单验证**:利用PHP...
- 安全性与稳定性:检查和修复源代码中的漏洞,确保系统的安全性和运行稳定性。 4. **部署与维护**: - 部署前需进行环境配置,如安装服务器、数据库和配置相关依赖。 - 系统上线后,需要定期进行数据备份,预防...
夏日PHP图书管理系统是一款基于PHP开发的应用程序,专为管理和组织图书馆资源而设计。...对于学习和研究PHP Web开发的人员,这个源码也是一个宝贵的参考资料,可以深入了解实际项目中的设计思路和最佳实践。
Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的...
科研项目验收管理系统是科研管理的重要组成部分,它负责对科研项目的进度、成果、资金使用等进行有效监控和评估,确保项目的顺利进行和最终成功。基于WEB技术的科研项目验收管理系统能够提供远程访问、实时更新和多...
"网上招聘求职系统的源代码.rar"提供了一套完整的解决方案,让我们深入探讨其中蕴含的技术要点和实现机制。 首先,我们要理解的是,一套完整的网上招聘求职系统通常包括用户注册与登录模块、职位发布模块、简历投递...