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输出Excel文件类
Feb 08 PHP
php重定向的三种方法分享
Feb 22 PHP
让PHP更快的提供文件下载的代码
Jun 13 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 PHP
php实现简单四则运算器
Nov 29 PHP
imagettftext() 失效,不起作用
Mar 09 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
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
javascript实现的动态文字变换
2007/07/28 Javascript
javascript整除实现代码
2010/11/23 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
python中根据字符串调用函数的实现方法
2016/06/12 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
简单了解python列表和元组的区别
2020/05/14 Python
Keras 使用 Lambda层详解
2020/06/10 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
自强自立美德少年事迹材料
2014/08/16 职场文书
房产公证书
2015/01/23 职场文书
健康教育主题班会
2015/08/14 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
Java数组详细介绍及相关工具类
2022/04/14 Java/Android