• 技术文章 >后端开发 >php教程

    php统计文章排行示例_php实例

    2016-06-07 17:21:40原创266
    复制代码 代码如下:

    /**
    *
    * 统计软件与文章等月、周、当天排行
    *
    * $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;
    */
    ?>

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php统计
    上一篇:php实现文件编码批量转换_php实例 下一篇:php获取目标函数执行时间示例_php实例
    Web大前端开发直播班

    相关文章推荐

    • PHP程序61条面向对象分析设计的经验小结_PHP• 用PHP来写记数器(详细介绍)_PHP• 使用PHP批量生成随机用户名_PHP• 让你的PHP引擎全速运转_PHP• Php利用java解析xml_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网