gpt4 book ai didi

php - Mysql 查询 AnyChart JSON 数据缺少日期

转载 作者:行者123 更新时间:2023-11-29 18:26:43 25 4
gpt4 key购买 nike

我正在使用任何图表构建仪表板。我从 mysql 数据库获取 JSON 格式的数据。查询示例:

SELECT DATE( data_inscricao ) AS name, COUNT( id ) AS value FROM utilizador GROUP BY name

因此,我得到了按注册日期分组的所有注册用户的计数。

结果示例:

[{name: "2016-01-22",value: "7"}, {name: "2016-01-25", value: "3"}, {name: "2016-01-26", value: "1"}, {name: "2016-01-27", value: "2"}, {name: "2016-02-02", value: "1"}, ...

我喜欢在没有任何注册的日期显示 0(零),例如 2016-01-23、2016-01-24、2016-01-28,...

这可能吗?

谢谢

最佳答案

首先,您需要定义日期的最小值和最大值。然后,您可以生成包含期间内每天的数组,并将其与数据库中的值合并。对于您的情况,我们有 2016-01-22 - 2016-02-02 期间:

<?php
$begin = new DateTime( '2016-01-22' );
$end = new DateTime( '2016-02-02' );

$allDays = [];
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ( $period as $dt ) {
$allDays[$dt->format('Y-m-d')] = '0';
}
foreach ($array as $key => $dayFromDB) {
$allDays[$dayFromDB->name] = $dayFromDB->value;
}
var_dump($allDays);

这里的$array是你的数据库数组。之后你会得到类似的东西:

array (size=12)
'2016-01-22' => string '7' (length=1)
'2016-01-23' => string '0' (length=1)
'2016-01-24' => string '0' (length=1)
'2016-01-25' => string '3' (length=1)
'2016-01-26' => string '1' (length=1)
'2016-01-27' => string '2' (length=1)
'2016-01-28' => string '0' (length=1)
'2016-01-29' => string '0' (length=1)
'2016-01-30' => string '0' (length=1)
'2016-01-31' => string '0' (length=1)
'2016-02-01' => string '0' (length=1)
'2016-02-02' => string '1' (length=1)

希望对你有帮助!

关于php - Mysql 查询 AnyChart JSON 数据缺少日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46122974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com