codeigniter中的自定义分页
我有一个codeigniter应用程序,它的分页代码就像一个符咒。分页允许访问者选择每页要查看多少记录。现在,我想补充以下几点: 显示Z记录总数中的X到Y 现在,Z很容易…我已经解决了。谁能告诉我怎么才能做到这一点 以下是我拥有的功能:codeigniter中的自定义分页,codeigniter,pagination,Codeigniter,Pagination,我有一个codeigniter应用程序,它的分页代码就像一个符咒。分页允许访问者选择每页要查看多少记录。现在,我想补充以下几点: 显示Z记录总数中的X到Y 现在,Z很容易…我已经解决了。谁能告诉我怎么才能做到这一点 以下是我拥有的功能: public function displayAllUsers() { if ($this->uri->segment(3) !="") { $limit = $this->uri->se
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
公共函数displayAllUsers()
{
如果($this->uri->segment(3)!=“”){
$limit=$this->uri->segment(3);
}否则{
$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);
//初始化和配置分页
$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']='';
$config['full_tag_close']='
';
$config['cur_tag_open']='';
$config['num_tag_open']='';
$config['num_tag_close']=' ;
$this->pagination->initialize($config);
//…I相关内容。。。。。
}//函数结束显示用户
任何帮助都将不胜感激。不应该那么难。事实上,如果您理解分页,那么很明显可以得到X和Y的值 首先,X和Y之间的差值当然等于
$limit
-1。X的值应等于变量$offset
,加上1(offset通常从0开始,而不是从1开始)。从这里,我确信您理解Y等于$offset+$limit
$X = $offset + 1;
$Y = $offset + $limit;
如果是在最后一页,则需要确保Y的值正确。您需要检查从数据库中获取的行总数,如果它小于每页的限制,则将其更改为如下内容
if (fetched_rows < $limit)
{
$Y -= ($limit - fetched_rows);
}
if(获取的行<$limit)
{
$Y-=($limit-获取的行);
}
你好,凯末尔。我有12张唱片。我每页显示10条记录。在第一页上,使用上面的代码,我现在看到了:从总共12个显示1到11个。这是错误的。在下一页,它显示:显示12个总数中的11到21个,你知道如何解决这个问题吗?@Zoran My bad。我没有把一切都想清楚。我已经更新了我的答案。我把我的页码改为4,这样我可以更好地看到我得到的。更新代码后,只剩下一个小问题需要解决:因此,在第一页上,显示4条记录,阅读以下内容:从总共12条中显示1到5条(应该是1到4?还是否?)下一页阅读以下内容:从总共12条中显示5到9条,最后一页阅读以下内容:从总共12条中显示9到13条,这是错误的,我总共有12条记录。在使用$x=$offset+1更改上述代码之后$y=$offset+$limit;如果($recordsCount<$limit){$y-=($limit-$recordsCount);}像一个符咒一样工作。非常感谢。