很久很久以前写的(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="开始更新统计" οnclick="if(confirm('您是否真的要更新?')) window.location='infoAutoLog.php';" />
<input type="button" name="gx" value="更新所有统计" οnclick="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();?>