显示跳过项的PHP图表图表
我正试图创建一个这样的图表 我创建了一个脚本,将数据添加到图形中。日期和值存储在db中,工作正常。 php脚本计算日期数并将其用作值,然后将其分配给日期 问题是如果有人错过了一天,它就会跳过我理解的价值。 那么,我如何为跳过的一天赋值零呢显示跳过项的PHP图表图表,php,jquery,Php,Jquery,我正试图创建一个这样的图表 我创建了一个脚本,将数据添加到图形中。日期和值存储在db中,工作正常。 php脚本计算日期数并将其用作值,然后将其分配给日期 问题是如果有人错过了一天,它就会跳过我理解的价值。 那么,我如何为跳过的一天赋值零呢 2014-07-23 2014-07-23 = 2, 2014-07-24 -> wasn't submitted so the 0 should be added to the graph with the date. 2014-07-25 201
2014-07-23
2014-07-23 = 2,
2014-07-24 -> wasn't submitted so the 0 should be added to the graph with the date.
2014-07-25
2014-07-25
2014-07-25= 3,
php脚本
$user_curr_id = $_SESSION['user_id'];
$sql = mysqli_query($con,"SELECT * FROM rosary WHERE user_ids = $user_curr_id ORDER BY datum ASC");
$array1 = array();
while($row = mysqli_fetch_array($sql)){
$array1[] = '"' . $row['datum'] . '"';
}
$tags = implode(', ', array_unique(array_map('trim',explode(',',implode(',',$array1)))));
$sql = mysqli_query($con,"SELECT datum, COUNT(datum) cnt
FROM rosary
WHERE user_ids = $user_curr_id
GROUP BY datum;");
$result = array();
while ($row = mysqli_fetch_array($sql)) {
$result[] = $row['cnt']; // add the content of field cnt
}
在js脚本中
labels : ["Start",<?php echo $tags; ?>] -> list the dates from db
data : [0,<?php echo implode(',', $result); ?>]-> list values from db
labels : ["Start",<?php echo implode(',',array_keys($res_array)) ?>],
data : [0,<?php echo implode(',', array_values($res_array)); ?>],
标签:[“开始”,]->列出数据库中的日期
数据:[0,]->列出数据库中的值
php:
$sql=mysqli\u query($con),选择数据,将(数据)计数为cnt
从念珠
按基准分组
按基准ASC订购;“”;
$result=array();
$start=null;
$end=null;
while($row=mysqli\u fetch\u数组($sql)){
$result['''。$row['datum'].''']=$row['cnt'];
如果(为null($start))$start=$row['datum'];
$end=$row['datum'];
}
$res_array=array();
如果(!为null($start)){
$i=strottime($start);
而($i$val){
$res_数组[$date]=$val;
}
在js脚本中
labels : ["Start",<?php echo $tags; ?>] -> list the dates from db
data : [0,<?php echo implode(',', $result); ?>]-> list values from db
labels : ["Start",<?php echo implode(',',array_keys($res_array)) ?>],
data : [0,<?php echo implode(',', array_values($res_array)); ?>],
标签:[“开始”,],
数据:[0,],
数据库不能无中生有。你需要一个临时表,列出你可以加入的范围内的每天,这样你就可以对它们进行零计数,或者在检索查询结果并填写缺少的天数后,你必须在php中扫描数据集。是的,我喜欢做第二个选项,但不确定如何使用扫描日期,如果没有指定0,在PHP中从$min_date循环到$max_date如何,如果$result数组中没有设置a日期,只需将其值添加为0?可以发布示例吗?