Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Php CodeIgniter-按月订购我的“帖子”?_Php_Mysql_Codeigniter_Count_Group By - Fatal编程技术网

Php CodeIgniter-按月订购我的“帖子”?

Php CodeIgniter-按月订购我的“帖子”?,php,mysql,codeigniter,count,group-by,Php,Mysql,Codeigniter,Count,Group By,在我的网站上,我想创建一个“归档”列表来对我的帖子进行分类 我的帖子表设置如下: id |职位|职位|发布日期|年|月 目前,这一模型功能的作用是: function getNews(){ $data = array(); $this->db->order_by("id", "desc"); $Q = $this->db->get('posts'); if ($Q->num_rows() > 0){ for

在我的网站上,我想创建一个“归档”列表来对我的帖子进行分类

我的帖子表设置如下: id |职位|职位|发布日期|年|月

目前,这一模型功能的作用是:

function getNews(){
     $data = array();
     $this->db->order_by("id", "desc");
     $Q = $this->db->get('posts');
     if ($Q->num_rows() > 0){
       foreach ($Q->result_array() as $row){
         $data[] = $row;
       }
    }
    $Q->free_result();  
    return $data;
}   
但是,我是否可以创建如下列表

July (12)

June (5)

May (2)
那么它列出了这个月以及这个月内的职位数量


到目前为止,我所有的尝试都以沮丧和眼泪告终。任何帮助都将不胜感激。

这与codeigniter无关,但无论如何我都会回答您

使用SELECT Count*然后按“月”排序,编写一个查询并使用以下命令运行它


这与codeigniter无关,但无论如何我都会回答你

使用SELECT Count*然后按“月”排序,编写一个查询并使用以下命令运行它

试试这个

SELECT  `year`,`month`,(SELECT COUNT(id) FROM `posts` WHERE `month` =p.`month`) AS c
FROM `posts` p  GROUP BY p.`month` ORDER BY `month`

function getNews(){
 $data = array();

 $Q = $this->db->query('SELECT `year`,`month`,(SELECT COUNT(id) FROM `posts` WHERE `month`=p.`month`) AS c FROM `posts` p  GROUP BY p.`month`ORDER BY `month`');
 if ($Q->num_rows() > 0){
   foreach ($Q->result_array() as $row){
     $data[] = $row;
   }
}
$Q->free_result();  
return $data;
}
试试这个

SELECT  `year`,`month`,(SELECT COUNT(id) FROM `posts` WHERE `month` =p.`month`) AS c
FROM `posts` p  GROUP BY p.`month` ORDER BY `month`

function getNews(){
 $data = array();

 $Q = $this->db->query('SELECT `year`,`month`,(SELECT COUNT(id) FROM `posts` WHERE `month`=p.`month`) AS c FROM `posts` p  GROUP BY p.`month`ORDER BY `month`');
 if ($Q->num_rows() > 0){
   foreach ($Q->result_array() as $row){
     $data[] = $row;
   }
}
$Q->free_result();  
return $data;
}

对dianuj的答案稍加修改,就是引入年,否则你会把每年所有的月份都归在一起。选择月,年,从测试中选择COUNTid,其中月=p.month作为c,从测试p顺序中选择p.year,p.month@mplf你是对的,我同意,但他没有在他的问题中提到,尽管我会在我的回答中添加一个专栏:谢谢。今天晚些时候我会试试这个,然后回复你。再次感谢您的快速回复。对dianuj的回答稍加修改,即引入“年度”,否则您会将每年的所有月份组合在一起。选择月,年,从测试中选择COUNTid,其中月=p.month作为c,从测试p顺序中选择p.year,p.month@mplf你是对的,我同意,但他没有在他的问题中提到,尽管我会在我的回答中添加一个专栏:谢谢。今天晚些时候我会试试这个,然后回复你。再次感谢您的快速回复。