2013-06-12 28 views
0

在我的網站上,我想創建一個「存檔」列表來對我的帖子進行分類。CodeIgniter - 按月排列我的'帖子'?

我的posts表設置如下: ID | post_title |後| | pubdate |年| |一個月

目前這款模式功能拉帖子:

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) 

因此,它列出了月份和該月內的帖子數量?

到目前爲止,我所有的嘗試都以挫折和眼淚結束。任何幫助將不勝感激。

回答

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; 
} 
+0

輕微修正dianuj的答案是介紹一年,否則你會結束每年的所有月份。 SELECT'month','year',( SELECT COUNT(id)FROM'test' WHERE'month' = p.'month')AS c FROM'test' p ORDER BY p.'year', p.'month'; – mplf

+0

@mplf你是對的我同意但他沒有在他的問題中提到,但我會在我的答案中添加該列:) –

+0

謝謝。我會在今天晚些時候嘗試並回復你。再次感謝您的快速響應。 – michaelmcgurk