gpt4 book ai didi

PHP : I need to fill "0" on months where there is no data available from a sql query

转载 作者:行者123 更新时间:2023-11-29 09:59:23 31 4
gpt4 key购买 nike

这起初看起来很简单,但现在却变得令人头疼。

我一年中每个月都会发生多次抢劫,比如说 2016 年。我的查询

SELECT MONTH(denuncia.fecha_registro_denuncia) as mes, count(denuncia.codigo_incidente)
FROM denuncia
INNER JOIN incidentes ON incidentes.codigo_incidente=denuncia.codigo_incidente
WHERE YEAR(denuncia.fecha_registro_denuncia)='".$a."' AND denuncia.codigo_incidente=0
GROUP BY mes

denuncia 与“向警方报告”相同

返回:

+-------+--------+
| month | robber.|
+-------+--------+
| 1 | 2 |
| 2 | 2 |
| 3 | 3 |
| 4 | 2 |
| 5 | 1 |
| 8 | 2 |
| 9 | 3 |
| 10 | 1 |
| 11 | 5 |
| 12 | 2 |
+-------+--------+

查询以 PHP 多维数组的形式获取,使用

while($rows=mysqli_fetch_array($result,MYSQLI_NUM)) {
$b[]=$rows;
}

数组格式的数据:

Array
(
[0] => Array
(
[0] => 1
[1] => 2
)

[1] => Array
(
[0] => 2
[1] => 2
)

[2] => Array
(
[0] => 3
[1] => 3
)

[3] => Array
(
[0] => 4
[1] => 2
)

[4] => Array
(
[0] => 5
[1] => 1
)

[5] => Array
(
[0] => 8
[1] => 2
)

[6] => Array
(
[0] => 9
[1] => 3
)

[7] => Array
(
[0] => 10
[1] => 1
)

[8] => Array
(
[0] => 11
[1] => 5
)

[9] => Array
(
[0] => 12
[1] => 2
)

)

如您所见,我的查询结果中缺少第 6 个月和第 7 个月。那几个月没有发生任何事件。当我在 StackOverflow 中搜索时,用零填充查询在某种程度上是一个复杂的 SQL 查询。

所以,我有 PHP 来解决这个问题。我需要将这些数据输出到图表显示库,以便我可以清晰地查看它。输入数据的格式为:

[2,2,3,2,1,0,0,2,3,1,5,2]

因此,我需要在位置 6 和 7 上添加 0,以填补没有发生任何事件的空月份。

问题是,我的编码能力很差。我尝试了一些解决方案,但总是陷入困境,已经几个小时了。

基本上算法是: - 遍历数组 - 检查月份是否存在 -如果不存在,则回显'0,"; - 前往下一个位置 - 再次检查月份是否存在 -...

编码了好几个小时,但我的头脑无法掌握解决方案。感谢您的帮助。

最佳答案

您可以做的一种方法是您可以用零填充月份数组并设置值

$month = array_fill_keys(range(1, 12),0); //fill month array key with month(1-12)

while($rows=mysqli_fetch_array($result,MYSQLI_NUM)) {
$month [$rows[0]]= $rows[1]; //check if exists set value
}

关于PHP : I need to fill "0" on months where there is no data available from a sql query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53312505/

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