php流水记录按天汇总

一个鼓励客户活跃度的积分表,开始没有考虑后面的事情,只做了记录,用来展示:

现在要求按日展示汇总数据。暂时先汇总展示,展示最近三十天的数据,先拿到最近三十天的日期,后根据日期汇总各项数据。

<?

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>';

下面是展示结果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章