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

下面是展示結果:

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