一个鼓励客户活跃度的积分表,开始没有考虑后面的事情,只做了记录,用来展示:
现在要求按日展示汇总数据。暂时先汇总展示,展示最近三十天的数据,先拿到最近三十天的日期,后根据日期汇总各项数据。
<?
require 'dbModel.php';
$database = new dbModel();
$d = trim('20200101'); //从前台传递过来请求的日期。
$dateMon = array();
for ($i = 29; $i >= 0; $i--) {
$dateMon[] = date('Y-m-d', mktime(0, 0, 0, substr($d, 4, 2), substr($d, 6, 2) - $i, substr($d, 0, 4))); //最近30天日期列表
}
foreach ($dateMon as $value) {
//有哪些项
$integralStr = array("登陆" => 0, "发帖" => 0, "帖子评论" => 0, "购物" => 0, "转发" => 0, "删帖" => 0, "话题评论" => 0, "精华帖" => 0, "创建话题" => 0);
$dataRes = $database->query("SELECT * FROM li_integral_earn_det where TO_DAYS(STR_TO_DATE(createAt,'%Y-%m-%d %H:%i:%s')) = TO_DAYS(STR_TO_DATE('{$value}','%Y-%m-%d'))")->fetchAll();
$integral=array('date'=>'','value'=>[]);
$integral['date']=$value;
foreach ($dataRes as $k => $v) {
$integralStr[$v['integralName']] = $integralStr[$v['integralName']] + (int) $v['integralNum'];
}
$integral['value']=$integralStr;
//一维数组叠加成多维数组。
$sumList[]= $integral;
}
print_r(json_encode($sumList,JSON_UNESCAPED_UNICODE));
echo '</br>';
下面是展示结果: