我有codeigniter applicatin,其分页代码就像魅力一样。分页允许访问者选择他希望每页显示多少记录。现在,我想补充以下内容:
从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
任何帮助都将深受赞赏。
答案 0 :(得分: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);
}