知识大全 PHP中利用MySQL进行访问统计的思路

Posted

篇首语:富贵必从勤苦得,男儿须读五车书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP中利用MySQL进行访问统计的思路相关的知识,希望对你有一定的参考价值。

PHP中利用MySQL进行访问统计的思路  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  看了网上很多统计都是使用文本来存储信息的 但是那样的话非常不方便 而且如果数据丢失了的话就很麻烦 如果存储在数据库里的话就比较好 把WEB服务器和数据库服务器分开的话 那么就能够长期的保持访问统计的数据了     基本访问统计包括 日访问量 月访问量 总访问量 平均访问量 日最高访问量等等数据    那些数据主要是关于时间的运算 为了方便运算 我们采用Unix时间戳是最方便合理的 下面我简单的说以下我实现统计的代码      数据库结构     #  # 访问统计表  #    DROP TABLE IF EXISTS `st_accesscount`;  CREATE TABLE `st_accesscount` (  `access_id` int( ) unsigned NOT NULL auto_increment   `session_id` varchar( ) NOT NULL default   `access_time` int( ) NOT NULL default   `access_ip` varchar( ) default NULL   `access_source` varchar( ) default NULL   `access_page` varchar( ) default NULL   `access_os` varchar( ) default NULL   `access_browse` varchar( ) default NULL   PRIMARY KEY (`access_id`)  );     实现代码     我把核心代码写出来 其他显示层代码和复杂计算自己想想 呵呵 : )    <?php  /*********************************************  * 文件 count php  * 用途 网站访问统计页  * 版本 v   * 创建 :   * 修改 :   * 版权 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( );  $db >query( SELECT * FROM st_accesscount WHERE access_time>=$today AND access_time<=$time );  $today_count = $db >nf();    // 昨日访问量  $yesterday = mktime( $c[m] $c[d] $c[y]);  $db >query( SELECT * FROM st_accesscount WHERE access_time>=$yesterday AND access_time<=$today );  $yesterday_count = $db >nf();    // 本月访问量  $month = mktime( $c[m] $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)/ / / ;  (($day floor($day)) > ) ? ($all_day = floor($day)+ ) : ($all_day = floor($day));    // 总访问量  $db >query( SELECT * FROM st_accesscount );  $all_count = $db >nf();    // 日均访问量  $day_access = round($all_count/$all_day );    ?>    上面的代码比较清晰 自己慢慢琢磨 恩 另外说一句 上面使用了phplib的db类库 cha138/Article/program/PHP/201311/20831

相关参考