【发布时间】:2017-11-27 08:12:18
【问题描述】:
我使用 codeigntier 3 分页库。
它有效,但不完全应该如何。
首先我将发布我的代码。
控制器设置
$config['base_url'] = base_url('items');
$config['total_rows'] = $this->ItemsM->countAll();
$config['per_page'] = 5;
$config['use_page_numbers'] = TRUE;
$config['nex_link'] = "Next";
$limit = $config['per_page'];
$offset = $this->uri->segment(2);
$this->pagination->initialize($config);
$data = array(
'musicians' => $this->ItemsM->allItems($limit, $offset),
'pagination' => $this->pagination->create_links()
);
$this->load->view('public/header');
$this->load->view('public/item-list', $data);
$this->load->view("public/footer");
型号
类 ItemsM 扩展 CI_MODEL{
function allUsers($limit="", $offset ="")
{
$query = $this->db->select('*')
->from('items')
->limit($limit)
->offset($offset)
->order_by('creation_date', 'desc')
->get();
return $query->result();
}
public function countAll(){
return $this->db->count_all_results('items');
}
路线
$route['items/(:any)'] = 'items';
此分页有效,但我得到的结果不正确。
在第一页/标签上,它显示具有此订单的商品
第 1 项
第 2 项
第 3 项
第 4 项
第 5 项 // 好的
但是当打开第 2 页时
我通过这种方式得到接下来的 5 个结果
项目 3
项目 4
项目 5
项目 6
第七条
老实说,我不明白问题出在哪里,有人知道,请帮忙。谢谢。
【问题讨论】:
-
看来问题出在您的 sql 查询上。当您单击第 2 页或下一页时,您将获得偏移量 2 的结果。意味着您将
$offset作为页码传递。在 id 2 或跳过 2 个结果之后显示结果。对吧? -
更像是在第 2 页上重复第 1 页的 3 个结果
-
是的,在第 2 页中,它从 item3 开始,因为它跳过了前 2 个结果。
-
试试我刚刚发布的答案的代码,希望它能完美运行。如果您遇到问题,请告诉我
标签: php codeigniter pagination