Php 如何更高效地获取mysql的7天计数数据到图表中
我需要得到7天的“日期文本”和“数据计数”的图表。js创建一个图表 mysql表Php 如何更高效地获取mysql的7天计数数据到图表中,php,mysql,chart.js,Php,Mysql,Chart.js,我需要得到7天的“日期文本”和“数据计数”的图表。js创建一个图表 mysql表 id title create_time (unixtime int10) php 我能实现我的想法,这就是工作 但我觉得也许能更有效地做到这一点? 任何sugesst?您可以通过一系列联合的子查询来获取日期范围(即,选择日期添加(当前日期(),间隔-1天)作为日常联合选择日期添加(当前日期(),间隔-2天)等),然后根据实际的数据表左外连接。 //get 7days $now = time(); $day7
id
title
create_time (unixtime int10)
php
我能实现我的想法,这就是工作
但我觉得也许能更有效地做到这一点?
任何sugesst?您可以通过一系列联合的子查询来获取日期范围(即,选择日期添加(当前日期(),间隔-1天)作为日常联合选择日期添加(当前日期(),间隔-2天)等),然后根据实际的数据表左外连接。
//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
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
}
]
}