0

ブログのアーカイブビューを作成しています。

次のようなURLがあります。

www.mydomain.com/blog/archive/2012-May

2012年5月に作成されたデータベースからすべてのブログ投稿を取得するにはどうすればよいですか?

作成された日付を保存するためにmysqldatetimeを使用しています。DBでのフォーマット:2012-03-14 14:39:47

これはこれまでの私のコードです:

    function get_archive_posts(){

    $data = '';

//NEED TO GROUP AND GET BY DATE AND YEAR IN URL

        $this->db->order_by('date','desc');
        $query = $this->db->get('blog'); 
        foreach ($query->result() as $row) {
            $data[] = array(
                'id' => $row->id,
                'date' => $row->date,
                'title' => $row->title,
                'content' => $row->content,
                'category' => $row->category,
                'author' => $row->author
            );
        }
        return $data;
    }

URLに表示されている月と年で注文し、これらの投稿のみを表示するにはどうすればよいですか?

4

2 に答える 2

1

月次アーカイブを作成するには、投稿の月と年をテーブルの別の列に保存して、その月と年に含まれるデータを簡単に取得できるようにすることをお勧めします。現在の日付形式では投稿の月と年を確認できないと思いますので、投稿日から月と年を取得してテーブルに保存し、月と年をアーカイブの月と年と比較してください。 。この方法でこれを行うのははるかに簡単だと思います。
うまくいけば、これはあなたを助けるでしょう。

于 2012-06-11T12:12:15.147 に答える
0

この階層に従ってください、

www.domain.com/blog/archieve/2012/may

コントローラ内blogで変数を使用して関数を作成します。そのような:

function archieve($year='A_DEFAULT_VALUE_FOR_HERE', $month='A_DEFAULT_VALUE_FOR_HERE_TOO') {

//You can here use 3rd and 4th segments (example: $year=$this->uri->segment(3); $month=$this->uri->segment(4); ) as variables.

}
于 2012-06-11T12:59:44.317 に答える