笨分页 - 结果在每一页面都相同(codeigniter pagination - results

2019-09-22 10:02发布

我使用的是笨分页,但我遇到的一个问题。

在单击该URL的变化,在极限的更新如displayAllUsers / 10 displayAllUsers / 15,但结果还是一样。

这里是我的控制器:

 public function displayAllUsers()
    {

        $this->load->model('backOfficeUsersModel');
        $data['loggedUser'] = $this->backOfficeUsersModel->get_by('username', $this->session->userdata('username'), FALSE,TRUE);

        $this->db->order_by('userid');
        $limit = 5;     // this works, I have 5 records displayed on the page
        $offset = 3;
        $this->db->limit($limit);
        $this->db->offset($offset);
        $data['users'] = $this->backOfficeUsersModel->get();

        // line bellow, prints correct result, 17 records total in database;
        $totalresults = $this->db->get('back_office_users')->num_rows();


        $this->load->library('pagination');
        $config['base_url'] = site_url('/backOfficeUsers/displayAllUsers');
        $config['total_rows'] = $totalresults;
        $config['per_page'] = 5;
        $config['uri_segment'] = 3;
        $this->pagination->initialize($config); 
        $data['main_content'] = 'users';
        $data['title'] = 'Back Office Users';
        $errorMessage = FALSE;
        $this->load->vars($data,$errorMessage);
        $this->load->view('backOffice/template');

    } // end of function displayAllUsers

任何人都可以发现什么,我做错了什么?

Answer 1:

试着做你喜欢这个偏移,

$offset = $this->uri->segment(3);
$this->db->limit(5, $offset);

当您访问用户通过这种方式,你从正确的补偿开始。

让我们假设你在你的桌子20个用户。 当你在页面上$ offset变量将是空的,因为在你的链接没有尾随数第一的土地(在$这个 - > URI->段(3))。 所以,当你查询数据库5个用户从0作为$偏移变量是空的开始。 在这种情况下你的代码如下:

$this->db->limit(5, 0).

获得5个记录从第0记录开始。

当您使用分页链接但是,你设置per_page变量添加一个数字,您的网址的结尾,并重新加载页面。 发生这种情况时,你的$ offset变量被赋予了许多,在这种情况下,它增加了每次5。 现在,在这种情况下你的代码会

$this->db->limit(5,5)

含义得到5个记录,从第5个记录开始。



Answer 2:

还有就是没有呼叫$this->pagination->create_links()生成的HTML放在页面上。

例如,

...
$this->load->vars($data,$errorMessage);
$data['page_nav'] = $this->pagination->create_links();
$this->load->view('page_body', $data);

这如果它使用与形式以及工作$page_nav添加分页项:

在'意见/ page_body.php:

... (various html markup)
<div class="pagination">
 <?php echo $page_nav; ?>
</div>


文章来源: codeigniter pagination - results remain same on every page