【问题标题】:codeigniter pagination page number issuecodeigniter分页页码问题
【发布时间】:2015-04-27 20:37:18
【问题描述】:

我正在尝试使用 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 行

【问题讨论】:

  • 我已编辑您的帖子以缩进它。请在此处发布示例时考虑缩进您的代码。它使每个人都更容易调试;)

标签: php database codeigniter pagination


【解决方案1】:

我认为你的问题是偏移量,试试这个:

$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] 页面消失,当我将其设置为 3 时,会从 [6,10] 页面消失
猜你喜欢
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 2014-09-21
  • 2019-05-08
  • 2013-04-04
相关资源
最近更新 更多