Php MYSQL请求|按年份和月份分组日期
我的问题是: 我有一个mysql表:events,希望得到特殊格式的json_字符串Php MYSQL请求|按年份和月份分组日期,php,mysql,json,Php,Mysql,Json,我的问题是: 我有一个mysql表:events,希望得到特殊格式的json_字符串 id event 1 2010-01-01 00:00:00 2 2010-07-02 00:00:00 3 2011-01-04 00:00:00 4 2012-01-30 00:00:00 5 2012-03-15 00:00:00 ... 我需要获取json字符串: {"events":[ {"2010":
id event
1 2010-01-01 00:00:00
2 2010-07-02 00:00:00
3 2011-01-04 00:00:00
4 2012-01-30 00:00:00
5 2012-03-15 00:00:00
...
我需要获取json字符串:
{"events":[
{"2010":
{
"1":{"id":1,"event":2010-01-01 00:00:00},
"7":{"id":2,"event":2010-07-02 00:00:00}
},
},
{"2011:
{
"1":{"id":3,"event":2012-01-30 00:00:00}
},
},
{"2012:
{
"1":{"id":4,"event":2011-01-04 00:00:00},
"3":{"id":5,"event":2012-03-15 00:00:00},
},
}
]}
我的代码如下:
$result = DB::query('SELECT id, event FROM events');
$events = array();
while($event = $result->fetch_object()) {
// the following statement won't get desired results
$events[] = $event;
}
return array(
'events' => json_encode($events);
);
如何更改代码以获取上述JSON字符串?只需substr()
从事件日期获取所需的部分,并使用这些部分构建多维数组:
while($event = $result->fetch_object()) {
$year = substr($event->event, 0, 4);
$month = (int)substr($event->event, 5, 2);
$events[$year][$month][] = $event;
}
更新后形成了一个问题:)@lanzz:不要认为在文章末尾暗示“我该怎么做?”太难了。如果所有的问题都像这样发布,我会很高兴的。@Quassnoi我不清楚提问者遇到了什么问题。这不是一个问题,这是他赋予我们的使命,我们是否应该选择接受它。@lanzz:“我需要获取json字符串”,下面的字符串对我来说非常清楚。@Quassnoi他没有解释他在生成所需输出方面的问题。他只是要求我们代替他做他的工作,你的代码只返回:{“events”:{“2012”:{“1”:{“id”:1,“event”:“2010-01-01 00:00:00”}}}}}@user889349,这将是一行的结果;您确定查询返回的结果足够多吗?是。我的查询没有限制。您的解决方案返回最后一行:{“events”:{“2012”:{“3”:{“id”:5,“event”:“2012-03-15 00:00:00”}}}}}}此代码返回所有行:$while($event=$result->fetch_object()){$year=substr($event->event,0,4);//$month=(int)substr($event->event->event,5,2);$events[$year][=$event;}但没有月份。哪里会有问题?谢谢