您当前的位置: 首页 > 网站编程 > PHP教程 > php统计文章排行示例

php统计文章排行示例

作者:不详 来源:网络 发布时间: 2014-08-06 22:10 点击:
这篇文章主要介绍了php统计文章排行示例,代码可以用在dedemcs上按月、周、当天统计文章,需要的朋友可以参考下 代码如下: ?php /** * * 统计软件与文章等月、周、当天排行 * * $field_id(文章ID) */ //统计月、周、当天排行的方法 require_once(dirname(__FILE__)./../

php统计文章排行示例

  这篇文章主要介绍了php统计文章排行示例,代码可以用在dedemcs上按月、周、当天统计文章,需要的朋友可以参考下

  代码如下:

  <?php

  /**

  *

  * 统计软件与文章等月、周、当天排行

  *

  * $field_id(文章ID)

  */

  //统计月、周、当天排行的方法

  require_once(dirname(__FILE__)."/../include/common.inc.php");

  function countdown($field_id){

  date_default_timezone_set('Asia/Shanghai'); //设置默认时区

  global $dsql;

  $re_total = 1;

  $tableName = 'yh_tongji';

  $nowDateArray = getdate(time());

  $sql_tongji = "select * from `$tableName` where aid=$field_id";

  $rs = $dsql->ExecuteNoneQuery2($sql_tongji);

  //如果不存在此篇文章信息,则新插入一条

  if($rs <= 0){

  //获取栏目ID值

  $sql_typeid = "select typeid from `yh_archives` where id=$field_id";

  $t_row = $dsql->GetOne($sql_typeid);

  $query = " INSERT INTO `$tableName` VALUES($field_id,$t_row[typeid],1,1,1,1,$nowDateArray[0]); ";

  $dsql->ExecNoneQuery($query);

  }else{

  $result = $dsql->GetOne($sql_tongji);

  $oldTimeStamp = $result['lasttime']; //最后点击时间

  $m_total = $result['m_total']; //月点击

  $w_total = $result['w_total']; //周点击

  $d_total = $result['d_total']; //日点击

  $t_total = $result['t_total']; //总点击

  $oldDateArray = getdate($oldTimeStamp);

  //统计当月

  if($nowDateArray["year"] == $oldDateArray["year"] && $nowDateArray["mon"] == $oldDateArray["mon"]){

  $m_total++;

  }else{

  $m_total = 1;

  }

  //统计本周

  $tmpStartDate = mktime(0,0,0,$nowDateArray[ "mon"],$nowDateArray[ "mday"],$nowDateArray[ "year"]) - ($nowDateArray[ "wday "] * 86400);

  $tmpEndDate = mktime(23,59,59,$nowDateArray[ "mon"],$nowDateArray[ "mday"],$nowDateArray[ "year"]) + ((6 - $nowDateArray[ "wday"]) * 86400);

  if($oldTimeStamp >= $tmpStartDate && $oldTimeStamp <= $tmpEndDate){

  $w_total++;

  }else{

  $w_total = 1;

  }

  //统计今日

  $dayStart =mktime(0,0,0,$nowDateArray[ "mon"],$nowDateArray[ "mday"],$nowDateArray[ "year"]); //当天开始时间戳

  $dayEnd =mktime(23,59,59,$nowDateArray[ "mon"],$nowDateArray[ "mday"],$nowDateArray[ "year"]); //当天结束时间戳

  if($oldTimeStamp >= $dayStart && $oldTimeStamp <= $dayEnd){

  $d_total++;

  }else{

  $d_total = 1;

  }

  $t_total++;

  //更新统计数

  $dsql->ExecuteNoneQuery("update $tableName set m_total=$m_total,w_total=$w_total,d_total=$d_total,t_total=$t_total,lasttime=$nowDateArray[0] where aid=$field_id");

  $dsql->ExecuteNoneQuery("update dede_archives set click=$t_total where id=$field_id");

  $re_total = $t_total;

  }

  return $re_total;

  }

  countdown($aid); //方法调用

  /*

  //mysql表结构

  CREATE TABLE IF NOT EXISTS `dede_tongji` (

  `aid` int(11) NOT NULL,

  `cid` smallint(5) NOT NULL,

  `tid` smallint(5) NOT NULL,

  `m_total` int(11) NOT NULL DEFAULT '1',

  `w_total` int(11) NOT NULL DEFAULT '1',

  `d_total` int(11) NOT NULL DEFAULT '1',

  `t_total` int(11) NOT NULL DEFAULT '1',

  `lasttime` int(12) NOT NULL,

  PRIMARY KEY (`aid`)

  ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

  */

  ?>
分享到:
本文"php统计文章排行示例"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4