php统计文章排行示例


Posted in PHP onMarch 04, 2014
<?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 = '#@__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 `#@__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 相关文章推荐
利用PHP创建动态图像
Oct 09 PHP
建立动态的WML站点(一)
Oct 09 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
php 注释规范
Mar 29 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
Joomla使用Apache重写模式的方法
May 04 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
Aug 13 PHP
PHP常用字符串函数用法实例总结
Jun 04 PHP
详解Laravel框架的依赖注入功能
May 27 PHP
php不使用插件导出excel的简单方法
Mar 04 #PHP
php无限遍历文件夹示例分享
Mar 04 #PHP
关于js和php对url编码的处理方法
Mar 04 #PHP
php面向对象中的魔术方法中文说明
Mar 04 #PHP
thinkphp实现多语言功能(语言包)
Mar 04 #PHP
thinkphp实现图片上传功能分享
Mar 04 #PHP
php判断是否为json格式的方法
Mar 04 #PHP
You might like
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
js实现简单的验证码
2015/12/25 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
速记Python布尔值
2017/11/09 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
几个人围成一圈的问题
2013/09/26 面试题
几道数据库的面试题或笔试题
2014/05/31 面试题
晚归检讨书
2014/02/19 职场文书
商场促销活动策划方案
2014/08/18 职场文书
调研座谈会发言材料
2014/08/23 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android
MySQL系列之四 SQL语法
2021/07/02 MySQL
python中tkinter复选框使用操作
2021/11/11 Python
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL