Php Codeigniter分页使用页码重复内容
我有一个有页码的博客。一切正常,但显示的项目重复。Php Codeigniter分页使用页码重复内容,php,codeigniter,pagination,Php,Codeigniter,Pagination,我有一个有页码的博客。一切正常,但显示的项目重复。 在其他页面上随机重复显示这些项目。例如,在第二个页面上,它显示一个已经在第一个页面上的项目 所以,我的控制器中有这个函数 public function index() { //Pagination $config['per_page'] = 4; $config['num_links'] = 2; $config['base_url'] = base_url().'blog/index'; $co
在其他页面上随机重复显示这些项目。例如,在第二个页面上,它显示一个已经在第一个页面上的项目 所以,我的控制器中有这个函数
public function index() {
//Pagination
$config['per_page'] = 4;
$config['num_links'] = 2;
$config['base_url'] = base_url().'blog/index';
$config['use_page_numbers'] = TRUE;
$num_rows = $this->db->get('posts');
foreach ($num_rows->result() as $row) {}
$num_rows = $num_rows->num_rows();
$num_rows = $num_rows;
$config['total_rows'] = $num_rows;
//Primeira página
$config['first_link'] = '<span style="font-weight: bold;color: rgb(225,2,38);"><<</span>';
//Última página
$config['last_link'] = '<span style="font-weight: bold;color: rgb(225,2,38);">>></span>';
//Página anterior
$config['prev_link'] = '<button type="select" class="selectarrowleft" href="#"><i class="fa fa-angle-left" aria-hidden="true"></i></button>';
//Próxima página
$config['next_link'] = '<button type="select" class="selectarrowright" href="#"><i class="fa fa-angle-right" aria-hidden="true"></i></button>';
//Páginas disponiveis
$config['num_tag_open'] = '<div>';
$config['num_tag_close'] = '</div>';
//Página corrente
$config['cur_tag_open'] = '<div id="current">';
$config['cur_tag_close'] = '</div>';
$this->pagination->initialize($config);
$this->db->order_by('id', 'DESC');
$data['blog'] = $this->db->get('posts', $config['per_page'], $this->uri->segment(4));
$this->load->view('frontend/template/header');
$this->load->view('frontend/template/nav_bar');
$this->load->view('frontend/pages/blog', $data);
$this->load->view('frontend/template/footer');
}
博客文章显示正确,无重复文章。但我真的想知道正确的页码。我能做什么?我见过很多类似的问题,但我没能解决。我想你的问题是
$this->uri->segment(4)代码>,您应该设置它$this->uri->segment(3)代码>,因为如果您设置了段4,您将一无所获,除非您想在URL中获得更多内容,或者:
public function index($page = 1) { //Default is 1
$page
编号将执行与获取uri段相同的操作。然后在limit($limit,$start)
方法中设置$start
变量
$start = ($page - 1) * $config['per_page'];
$data['blog'] = $this->db->get('posts', $config['per_page'], $start);
这是正确的吗?foreach($num_rows->result()作为$row){}$num_rows=$num_rows->num_rows()$num_rows=$num_rows;这些项目是否在同一页上重复?下一页?是重复(与新项目一起)还是相同的项目再次显示?您没有正确提供偏移量。请尝试$num_rows=$num_rows->num_rows();在foreach()循环上方,使用不同的变量名,如$totalRow=$num_rows->num_rows();和$config['total_rows']=$totalRow;此处$num_rows varible可能与mysql结果的总行数冲突。这些项目在其他页面上随机重复显示。例如,在第二个页面上,它显示一个已经在第一个页面上的项目。
public function index($page = 1) { //Default is 1
$start = ($page - 1) * $config['per_page'];
$data['blog'] = $this->db->get('posts', $config['per_page'], $start);