当前位置:Gxlcms > PHP教程 > CodeIgniter(CI3.0)分页类实践记录

CodeIgniter(CI3.0)分页类实践记录

时间:2021-07-01 10:21:17 帮助过:5人阅读

最近在学习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),而不是页数

人气教程排行