Php codeigniter分页页码问题

Php codeigniter分页页码问题,php,database,codeigniter,pagination,Php,Database,Codeigniter,Pagination,我正在尝试使用Codeigniter分页库,我希望我的分页url如下: mysite.com/codeigniter/controller/page/1 mysite.com/codeigniter/controller/page/2 mysite.com/codeigniter/controller/page/3 这是我的控制器: class Controller extends CI_Controller { public function index() { $th

我正在尝试使用Codeigniter分页库,我希望我的分页url如下:

mysite.com/codeigniter/controller/page/1

mysite.com/codeigniter/controller/page/2

mysite.com/codeigniter/controller/page/3

这是我的控制器:

class Controller extends CI_Controller {
    public function index() {
        $this->load->model('model');
        $segment=$this->uri->segment(3);
        /* Pagination */
        $config['base_url']=base_url('controller/index');
        $config['total_rows']=$this->model->count_active_members()->num_rows;
        $config['per_page']=5;
        $config['uri_segment'] = 3;
        $config['use_page_numbers'] = TRUE;
        $this->pagination->initialize($config);
        /* END Pagination */
        $result['members']=$this->model->get_active_members($segment);
        $this->load->view('view',$result);
    }
}
我的模型:

class Model extends CI_Model {
    public function get_active_members($segment) {
        $this->db->select('username,email,balance,ctimes,regdate');
        $this->db->limit(5,$segment);
        return $this->db->get_where('members',array('status'=>'active'));
    }

    public function count_active_members() {
        return $this->db->get_where('members',array('status'=>'active'));
    }   
}

它工作正常,但问题是我的数据库中有9行&它只显示7行。我认为您的问题是偏移量,请尝试以下方法:

$this->db->select('username,email,balance,ctimes,regdate');
$per_page = 5;
$segment = $segment > 0 ? (($segment - 1) * $per_page) : $segment;
$this->db->limit($per_page, $segment);

我已经编辑了你的文章以缩进它。请在这里输入示例时考虑缩进代码。它使每个人都更容易调试;)它工作了,但是在我的数据库中还有一个丢失的行,它没有显示?一个遗漏的行,是最后一个还是第一个?在我的表中间?奇怪的是,第一页开始从[0到5 ],第二个[6, 10 ]和第三个[11, 15 ],在哪一个行必须显示?当我设置每一个页面到5个行从[11,15]消失。page&当我将其设置为3时,一行从[6,10]页消失