Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Codeigniter的数据库查询。(委托人)_Database_Codeigniter_Group By - Fatal编程技术网

Database Codeigniter的数据库查询。(委托人)

Database Codeigniter的数据库查询。(委托人),database,codeigniter,group-by,Database,Codeigniter,Group By,我对Codeigniter的db查询有一点疑问。订购人 $this->db->select('*, MONTH(date) as mnth'); $this->db->where('school_id', $school_id); $this->db->group_by('MONTH(date)'); $this->db->order_by('date', 'desc'); $query = $this->db->get('even

我对Codeigniter的db查询有一点疑问。订购人

$this->db->select('*, MONTH(date) as mnth');
$this->db->where('school_id', $school_id); 
$this->db->group_by('MONTH(date)'); 
$this->db->order_by('date', 'desc');
$query = $this->db->get('events'); 
在上面的代码中,我希望获得每个月的事件,但它只返回每个月的第一个事件。。我已经用php循环尝试过了,但我希望没有循环。。希望得到好的回应

致意


Muhammad Saud

GROUP BY将把与参数匹配的所有列值聚合到一行中。您通常需要在SELECT语句中使用GROUP BY中的SUM等聚合函数。如果选择的列未与聚合函数一起使用,则应将它们包括在GROUP BY中。我不确定您到底想达到什么目的,但我认为GROUP BY并没有达到您预期的效果-可能尝试删除它或向其中添加更多列名。

GROUP BY正在干扰您的查询,而不是ORDER BY。查看其文档以了解原因。感谢Cryode的回复。我调查了一下,但里面没有我的问题。。如果你了解我的问题。。如果可以的话,请给出一个答案。谢谢各位,我有一个名为“Events”的表,其中包含一些带有日期的事件。我只想使用db查询分别获取每个月的事件。我使用for循环完成了这项工作,但使用大量数据最终会变得很慢。请对此提出一些解决方案。不用担心。尝试删除组_by并添加另一个组,该组将接受指定月份作为参数,并根据该月份筛选结果。如果您发布了当前生成的结果和期望得到的结果,这可能会有所帮助。我希望如下:$events['januaray']=一月事件数组$events['februaray']=二月事件数组$events['martch']=martch事件数组等等。。。。我想要$events数组作为回报。如果我理解您想要实现的目标,那么我认为这是不可能的。如上所述,使用where子句从数据库生成所需的结果,或者遍历所有结果并创建所需的结果数组。要生成所需的$events数组,我只需遍历查询结果并创建新数组。