php统计文章排行示例

时间:2016.04.19 发布人:jafary

php统计文章排行示例

已解决问题

谷歌jafary用户在2016.04.19提交了关于“朝花夕拾php统计文章排行示例”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-09-21T08:03:12。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你是我的宝贝,你是我的花,谢谢你对我的帮助!

希望以下的回答,能够帮助你。

第1个回答

用户名:mxtpten6a  

复制代码代码如下:
<?php
/**
*
*统计软件与文章等月、周、当天排行
*
*$field_id(文章ID)
*/
//统计月、周、当天排行的方法
require_once(dirname(__FILE__)."/../include/common.inc.php");
functioncountdown($field_id){
date_default_timezone_set('Asia/Shanghai');//设置默认时区
global$dsql;
$re_total=1;
$tableName='#@__tongji';
$nowDateArray=getdate(time());
$sql_tongji="select*from`$tableName`whereaid=$field_id";
$rs=$dsql->ExecuteNoneQuery2($sql_tongji);
//如果不存在此篇文章信息,则新插入一条
if($rs<=0){
//获取栏目ID值
$sql_typeid="selecttypeidfrom`#@__archives`whereid=$field_id";
$t_row=$dsql->GetOne($sql_typeid);
$query="IN**RTINTO`$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$tableNamesetm_total=$m_total,w_total=$w_total,d_total=$d_total,t_total=$t_total,lasttime=$nowDateArray[0]whereaid=$field_id");
$dsql->ExecuteNoneQuery("updatedede_archivessetclick=$t_totalwhereid=$field_id");
$re_total=$t_total;
}
return$re_total;
}

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

/*
//mysql表结构

CREATETABLEIFNOTEXISTS`dede_tongji`(
`aid`int(11)NOT**LL,
`cid`**allint(5)NOT**LL,
`tid`**allint(5)NOT**LL,
`m_total`int(11)NOT**LLDEFAULT'1',
`w_total`int(11)NOT**LLDEFAULT'1',
`d_total`int(11)NOT**LLDEFAULT'1',
`t_total`int(11)NOT**LLDEFAULT'1',
`lasttime`int(12)NOT**LL,
PRIMARYKEY(`aid`)
)ENGINE=MyISAMDEFAULTCh**AR**T=latin1;
*/
?>