很久很久以前写的(2011年的时候)统计数据表中按照每个月份来统计,不过后来数据表的数据太庞大,要采用缓存。 原先的都是直接实时动态查询。现在不能用了,丢掉了。有点可惜~ ~ ~ 其实有蛮多问题。 ?phpdefine('NOROBOT', TRUE);define('CURSCRIPT', 'info
很久很久以前写的(2011年的时候)统计数据表中按照每个月份来统计,不过后来数据表的数据太庞大,要采用缓存。
原先的都是直接实时动态查询。现在不能用了,丢掉了。有点可惜~ ~ ~ 其实有蛮多问题。
<?php define('NOROBOT', TRUE); define('CURSCRIPT', 'infoSummary'); require_once '../common.inc.php'; $weekArr = array( "周日", "周一", "周二", "周三", "周四", "周五", "周六", ); $yearmonth = trim( $yearmonth ); if(!preg_match("/^((19|20)\d{2}-\d{1,2})$/",$yearmonth)) $yearmonth = date("Y-m"); $whereMonth = $wheresql = " WHERE 1 "; $wheresql.= " AND DATE_FORMAT( FROM_UNIXTIME(date1),'%Y-%m')='$yearmonth' "; $sqlArr = array(); /* 选出全部月份 */ $sqlArr['Month'] = "SELECT date1,COUNT(tid) AS num,DATE_FORMAT( FROM_UNIXTIME(date1),'%Y-%m') AS `yearmonth`, MONTH(FROM_UNIXTIME(date1)) AS `month`, YEAR(FROM_UNIXTIME(date1)) AS `year` FROM gk_info_info $whereMonth GROUP BY `yearmonth` ORDER BY `year` ASC,`month` ASC "; #$queryMonth= DB::query( $sqlArr['Month'] ); $queryMonth= $dsql->Execute('m', $sqlArr['Month'] ); $yearmonthArr = array(); $yearArr = array(); while($rs = $dsql->GetArray('m') ){ $yearmonthArr[$rs['month']] = $rs; $yearArr[$rs['year']]++; } /* 选出当月的 */ $sqlArr['List'] = "SELECT date1 FROM gk_info_info $wheresql ORDER BY date1 ASC "; $queryList = $dsql->Execute('L', $sqlArr['List'] ); $REC = array(); while($rs = $dsql->GetArray('L')) { $date = date("Y-m-d",$rs['date1']); $REC[$date]['total']++; } $nowPHP = date('Y-m-d H:i:s'); $nowMySQL = $dsql->GetOne("SELECT NOW();"); //$navtitle = '<a href="phpWorkList.php">工作汇总</a> ? <a href="../phpWorkUserdaily.php">帖子统计</a>'; #include_once admtpl("infoSummary"); include 'tpl/infoSummary.htm';
模板文件 infoSummary.htm
<?php mHeader();?> <div class="divbox"> <table class="tbBorder" border="1"> <tr> <th width="20%"><div align="center">年份</div></th> <th width="14%"><div align="center">月额</div></th> <th>总数</th> </tr> <?php foreach ($yearmonthArr as &$rs) { ?> <tr> <?php if($lastyear != $rs['year']){ $lastyear=$rs['year']; ?> <th class="row2" rowspan="<?php echo $yearArr[$rs[year]]?>"><div align="center"><?=$rs[year]?>年</div></th> <?php } ?> <td class="row3"><div align="center"><a href="?yearmonth=<?=$rs[yearmonth]?>"><?=$rs[month]?>月</a></div></td> <td><?php echo $rs[num]; if($rs[yearmonth]==$yearmonth) echo "▲▲▲"; ?></td> </tr> <?php } ?> </table> <p> </p> <input type="button" name="gx" value="开始更新统计" onclick="if(confirm('您是否真的要更新?')) window.location='infoAutoLog.php';" /> <input type="button" name="gx" value="更新所有统计" onclick="if(confirm('您是否真的要更新?')) window.location='infoAutoLog.php?ac=all';" /> <p style="color:#444;font-size:13px;line-height: 22px;">P H P时间:<?php echo $nowPHP?></p> <p style="color:#444;font-size:13px;line-height: 22px;">MySQL时间:<?php echo current($nowMySQL);?></p> <p> </p> <table class="tbBorder" border="1"> <tr> <th width="40"><div align="center">序号</div></th> <th width="150"><div align="center">日期</div></th> <th>总量</th> </tr> <?php $xu=0; foreach ($REC as $date => $rs) { $weekDate=date('w',strtotime( $date )); $weekYear=date('W',strtotime($date)); if($lastweekYear != $weekYear) { echo '<tr><td colspan="16"> </td></tr>'; $lastweekYear=$weekYear; } $xu++; ?> <tr> <td width="5%"><div align="center"><?=$xu?></div></td> <td width="25%" class="row2"><div align="center"><?php echo $weekArr[$weekDate];?>(<?php echo $date;?>)</div></td> <td width="70%"><a href="infoList.php?date1=<?php echo $date;?>" target="_blank"><?php echo $rs['total'];?></a></td> </tr> <?php } ?> </table> <script language="javascript" type="text/javascript" src="http://quote.51.la/?id=4525618&mb=5"></script> <p> </p> <div class="code"><?php ShowSQL();?></div> </div> <?php mFooter();?>