0

私の Web サイトで、投稿を分類するための「アーカイブ」リストを作成したいと考えています。

postsのテーブルは次のように設定されています : 投稿タイトル | 投稿 | 出版 | 年 | 年 | 月

現在、このモデル関数は投稿をプルします:

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 に答える