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);