CI框架分页总结

/***************
 * @function 自定义分页函数
 * @Param:
 *          $curpage :      当前页
 *          $baseurl :      须要分页的地址
 *          $totlerows :    总记录数
 *          $perpage :      每页记录数,默认12 *          $flag :         默认 rel 属性会被自动的被添加到合适的连接上,可是在这里选择禁用:
 * @Return: array();        分页的基本配置信息
 *
 * 提示:若是原来本身写的分页没有对
 *      $offset     = ($per_page-1)*$config['per_page']; 进行验证,
 *      则调用本方法时须要调整为以下:
 *      $offset     = ($curpage-1)*$config['per_page'] < 0 ? 0 :($curpage-1)*$config['per_page'];
 *      不然调用本方法会报错
 ***************/
function manPages($curpage,$baseurl,$totlerows,$perpage = 12,$flag = FALSE){

    $config['base_url']       = $baseurl;
    $config['total_rows']  = $totlerows;
    $config['per_page']       = $perpage;
    $config['pagecount']   = ceil($config['total_rows']/$config['per_page']);
    $curpage            = $curpage && $curpage<=$config['pagecount'] ? $curpage : 1;
    $config['attributes']['rel'] = $flag;
    $config['first_link']  = lang('first_link');
    $config['last_link']   = lang('last_link');
    $config['cur_page']       = $curpage;
    return $config;
}

而后须要调用分页的地方进行,以下:php

public function test(){
        $this->load->library('pagination');
        $this->load->model("test_model", 'test');

        $curpage   = $this->uri->segment(4);
        $baseurl      = site_url('test/test');

        $data     = array();

        //分页
        $where             = array();
        $where['is_del']               = 0;
        $totlerows         = $this->test->Count($where);
        $config = Pages($curpage,$baseurl,$totlerows);
        $this->pagination->initialize($config);
//
        $offset                = ($curpage-1)*$config['per_page'] < 0 ? 0 :($curpage-1)*$config['per_page'];
        $limit             = $config['per_page'];

        $mydata               = $this->test->getSth($where, $limit, $offset);
        if($config['total_rows'] > $config['per_page']){
    $data['pages']    .= "".sprintf(lang('page_all'), $config['total_rows'])."" ;
    $data['pages']     .=$this->pagination->create_links();
    $data['pages']     .=". $config['base_url'].'/'.$config['pagecount'].">".sprintf(lang('last_link'), $config['last_link'])."";
}
        $data['config']          = $this->config->config;
        $data['mydata']         = $mydata;

        $this->load->view('test/test.html', $data);
    }
相关文章
相关标签/搜索