0

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

我的posts表是这样设置的: id | post_title | 发布 | 发表 | 年份 | 月

目前这个模型功能拉的职位:

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)

所以它列出了当月的月份和帖子的数量?

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

4

2 回答 2

2

试试这个

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;
}
于 2013-06-12T19:15:06.793 回答
1

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

使用 SELECT Count(*) 然后按“月”排序,编写查询并使用它运行它

http://ellislab.com/codeigniter/user-guide/database/queries.html

于 2013-06-12T19:06:32.180 回答