最近在学习b/s,选择了php ci框架作为切入点。
    在尝试制作个人cms的时候遇到了需要分页的情况,网上好像搜不到3.0版本以上的例子,下面附上本地实验的代码,供参考。
    数据库情况如下:
首先看controller
    load->model('article_model','article');        $this->load->library('pagination');    }    /**     * @param int $page 可看做offset     */    public function index($page=0)    {        //每页显示三条数据        $limit['num']=3;        $limit['offset']=$page;        $config['base_url']=site_url('p/index');        $config['total_rows']=$this->article->get_articles_num();//数据总条数        $config['per_page']=$limit['num'];//每页显示条数        $this->pagination->initialize($config);        $data=array(            'articles'=>$this->article->get_limit_articles($limit)        );        $this->load->view('page_ex',$data);    }}
再来model
    db->from('my_article');        $this->db->order_by('posttime', 'desc');        $query=$this->db->get();        return $query->result_array();    }    /**     * 获取表内数据数量     * @return mixed     */    public function get_articles_num()    {        return $this->db->count_all('my_article');    }    /**     * 获取有限个数的数据     * @param array $arr     * @return mixed     */    public function get_limit_articles($arr=array('num'=>false,'offset'=>false))    {        if(isset($arr['num']) and isset($arr['offset']) and ($arr['num']!==false) and ($arr['offset']!==false))        {            $query=$this->db->get('my_article',$arr['num'],$arr['offset']);            return $query->result_array();        }        else        {            return $this->get_all_articles();        }    }}
最后是view
    pagination->create_links();
附上运行效果截图
需要注意的是,index/9 这里面的9可以看做是数据库中的索引(index),而不是页数
   
 
   