0

我有 codeigniter 应用程序,它的分页代码就像一个魅力。分页允许访问者选择他希望每页看到多少记录。现在,我想添加以下内容:

从总共 Z 条记录中显示 X 到 Y。

现在,Z 很容易……我已经解决了。谁能告诉我我怎么能做到这一点?

这是我拥有的功能:

  public function displayAllUsers() 
   { 

        if ($this->uri->segment(3) !="") { 
        $limit = $this->uri->segment(3); 
        } else { 
        $limit = 10; 
        } 

        $offset = 4; 
        $offset = $this->uri->segment(4); 
        $this->db->limit($limit, $offset); 
        $data['users'] = $this->backOfficeUsersModel->get();
        $totalresults = $this->db->get('back_office_users')->num_rows();

        $this->session->set_userdata('totalresults', $totalresults);

        //initializing & configuring paging
        $this->load->library('pagination');
        $config['base_url'] = site_url('/backOfficeUsers/displayAllUsers/'.$limit.'/');
        $config['total_rows'] = $totalresults;
        $config['per_page'] = $limit;
        $config['uri_segment'] = 4;
        $config['full_tag_open'] = '<div class="dataTables_paginate paging_bootstrap pagination"><ul>';
        $config['full_tag_close'] = '</ul></div>';
        $config['cur_tag_open'] = '<li><a href=# style="color:#ffffff; background-color:#258BB5;">';
        $config['cur_tag_close'] = '</a></li>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';

        $this->pagination->initialize($config); 

       //....irelevant content.....

    } // end of function displayAllUsers

任何帮助将不胜感激。

4

1 回答 1

1

它不应该那么难。实际上,如果您了解分页,很明显如何获得 X 和 Y 的值。

首先,X 和 Y 的差值当然会等于$limit- 1。X 的值应该等于变量$offset, 加 1(偏移量一般从 0 开始,而不是 1)。从那里,我相信你明白 Y 等于$offset + $limit

$X = $offset + 1;
$Y = $offset + $limit;

如果您在最后一页,您需要确保 Y 的值正确。您需要检查从数据库中获取的总行数,如果它小于每页的限制,然后把它改成这样

if (fetched_rows < $limit)
{
    $Y -= ($limit - fetched_rows); 
}
于 2012-10-05T02:35:34.287 回答