一個鼓勵客戶活躍度的積分表,開始沒有考慮後面的事情,只做了記錄,用來展示:
現在要求按日展示彙總數據。暫時先彙總展示,展示最近三十天的數據,先拿到最近三十天的日期,後根據日期彙總各項數據。
<?
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>';
下面是展示結果: