Php CodeIgniter-按月订购我的“帖子”?
在我的网站上,我想创建一个“归档”列表来对我的帖子进行分类 我的帖子表设置如下: id |职位|职位|发布日期|年|月 目前,这一模型功能的作用是: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
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你是对的,我同意,但他没有在他的问题中提到,尽管我会在我的回答中添加一个专栏:谢谢。今天晚些时候我会试试这个,然后回复你。再次感谢您的快速回复。