Мне нужно получить 7 дней «текст даты» и «количество данных» для диаграммы.js создать диаграмму.
MySQL стол
id
title
create_time (unixtime int10)
PHP
//get 7days
$now = time();
$day7 = array();
$day7_srt="";
for($i=0; $i<7; $i++){
$d = mktime(0,0,0,date('m',$now),date('d',$now)-$i);
$day7[$i]["d"] = date('d',$d);
$day7[$i]["m"] = date('m',$d);
}
sort($day7);
foreach ($day7 as $key => $value) {
$d = $value['d'];
$m = $value['m'];
$day7_srt .= "\"$m-$d\",";
}
$day7_srt=substr("$day7_srt",0,-1); //"11-19","11-20","11-21".....etc
//get data count
$data_value = array();
$date_show ="";
foreach ($day7 as $key => $value) {
$date = $value["date"];
$sql = "SELECT COUNT( * ) FROM `news` WHERE FROM_UNIXTIME( `create_time` , '%Y-%m-%d' ) = '$date'";
$r_title = $pdo->query($sql);
$r_title = $r_title->fetch();
$data_value[$key] = $r_title["0"];
}
foreach ($data_value as $key => $value) {
$date_show .= "\"$value\",";
}
$date_show=substr("$date_show",0,-1); //show "3","5","2".....etc
Стиль кода Js
var lineChartData = {
labels : ["11-19","11-20","11-21","11-22","11-23","11-24","11-25"],
datasets : [
{
label: "My Chart",
data : [1,2,3,4,5,7,9] //mysql data here
}
]
}
Я могу сделать свою идею, и это работа
Но я чувствую, может быть, более эффективно сделать это?
любой sugesst?
Задача ещё не решена.
Других решений пока нет …