【发布时间】:2011-11-13 17:37:27
【问题描述】:
我想显示一个基于月份的年度报告,假设我在 1 月、8 月和 12 月有订单,但在今年剩下的时间里没有订单。
当我使用 CI 查询时
select month(order_date) as month_name,
count(order_id) as amount
from order
where year(order_date) = 2011
group by month(order_date)
只返回 3 行。
说我然后这样做:use $query->result_array()
Array ([0] => Array ( [month_num] => 1 [amount] => 4 )
[1] => Array ( [month_num] => 8 [amount] => 1 )
[2] => Array ( [month_num] => 12 [amount] => 19 )
)
这很好,但我需要用缺失的月份来填写一年中剩下的时间。如果数据库中不存在月份,我需要将金额默认为零。
基本上,我最终会得到一个包含一年中所有月份的数组,其中的值取自数据库,如果月份不存在,则为零。
【问题讨论】:
-
简单!用零填充你的数组。
-
感谢 barry 编辑我的问题 :) 感谢 @nickb 提供迷人的解决方案,非常感谢 :)
-
@tegaralaga:如果问题解决了,请选择正确答案并标记为正确答案。如果没有,请添加您找到的并标记为正确的。
-
@Tadeck:完成,先生! :) 再次感谢
标签: php mysql arrays codeigniter