Chinaunix首页 | 论坛 | 博客
  • 博客访问: 170819
  • 博文数量: 49
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 337
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-23 15:51
文章分类

全部博文(49)

文章存档

2014年(23)

2013年(26)

我的朋友

分类: PHP

2014-03-06 06:18:25

php统计文章排行示例,代码可以用在上按月、周、当天统计文章。

代码:
  1. <?php
  2. /**
  3.  *
  4.  * 统计软件与文章等月、周、当天排行
  5.  *
  6.  * $field_id(文章ID)
  7.  */
  8. //统计月、周、当天排行的方法
  9. require_once(dirname(__FILE__)."/../include/common.inc.php");
  10. function countdown($field_id){
  11. date_default_timezone_set('Asia/Shanghai'); //设置默认时区
  12. global $dsql;
  13. $re_total = 1;
  14. $tableName = '#@__tongji';
  15. $nowDateArray = getdate(time());
  16. $sql_tongji = "select * from `$tableName` where aid=$field_id";
  17. $rs = $dsql->ExecuteNoneQuery2($sql_tongji);
  18. //如果不存在此篇文章信息,则新插入一条
  19. if($rs <= 0){
  20. //获取栏目ID值
  21. $sql_typeid = "select typeid from `#@__archives` where id=$field_id";
  22. $t_row = $dsql->GetOne($sql_typeid);
  23. $query = " INSERT INTO `$tableName` VALUES($field_id,$t_row[typeid],1,1,1,1,$nowDateArray[0]); ";
  24. $dsql->ExecNoneQuery($query);
  25. }else{
  26.  $result = $dsql->GetOne($sql_tongji);
  27.  $oldTimeStamp = $result['lasttime']; //最后点击时间
  28.  $m_total = $result['m_total']; //月点击
  29.  $w_total = $result['w_total']; //周点击
  30.  $d_total = $result['d_total']; //日点击
  31.  $t_total = $result['t_total']; //总点击
  32.  $oldDateArray = getdate($oldTimeStamp);
  33.  //统计当月
  34. if($nowDateArray["year"] == $oldDateArray["year"] && $nowDateArray["mon"] == $oldDateArray["mon"]){
  35.   $m_total++;
  36.  }else{
  37.   $m_total = 1;
  38.  }
  39. //统计本周
  40. $tmpStartDate = mktime(0,0,0,$nowDateArray[ "mon"],$nowDateArray[ "mday"],$nowDateArray[ "year"]) - ($nowDateArray[ "wday "] * 86400);
  41. $tmpEndDate = mktime(23,59,59,$nowDateArray[ "mon"],$nowDateArray[ "mday"],$nowDateArray[ "year"]) + ((6 - $nowDateArray[ "wday"]) * 86400);
  42. if($oldTimeStamp >= $tmpStartDate && $oldTimeStamp <= $tmpEndDate){
  43.   $w_total++;
  44. }else{
  45.   $w_total = 1;
  46. }
  47. //统计今日
  48. $dayStart =mktime(0,0,0,$nowDateArray[ "mon"],$nowDateArray[ "mday"],$nowDateArray[ "year"]); //当天开始时间戳
  49. $dayEnd =mktime(23,59,59,$nowDateArray[ "mon"],$nowDateArray[ "mday"],$nowDateArray[ "year"]); //当天结束时间戳
  50. if($oldTimeStamp >= $dayStart && $oldTimeStamp <= $dayEnd){
  51.   $d_total++;
  52. }else{
  53.   $d_total = 1;
  54. }
  55.  $t_total++;
  56. //更新统计数
  57.  $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");
  58.  $dsql->ExecuteNoneQuery("update dede_archives set click=$t_total where id=$field_id");
  59.  $re_total = $t_total;
  60. }
  61. return $re_total;
  62. }
  63. countdown($aid); //方法调用
  64. /*
  65. //mysql表结构
  66. CREATE TABLE IF NOT EXISTS `dede_tongji` (
  67.   `aid` int(11) NOT NULL,
  68.   `cid` smallint(5) NOT NULL,
  69.   `tid` smallint(5) NOT NULL,
  70.   `m_total` int(11) NOT NULL DEFAULT '1',
  71.   `w_total` int(11) NOT NULL DEFAULT '1',
  72.   `d_total` int(11) NOT NULL DEFAULT '1',
  73.   `t_total` int(11) NOT NULL DEFAULT '1',
  74.   `lasttime` int(12) NOT NULL,
  75.   PRIMARY KEY (`aid`)
  76. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  77. */
  78. ?>
阅读(872) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~