You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter分页失效:数据库全量加载而非分页显示问题排查

CodeIgniter分页失效问题修复

核心错误原因

  • 每页条数赋值错误:你将$limit设为总记录数$finaldata['num_results'],导致每页加载所有数据,分页功能直接失效
  • 偏移量未正确获取:代码中直接使用$offset但未从URI分段读取,会导致起始位置计算错误
  • 分页配置参数错误:$config['per_page']被赋值为总记录数,而非预期的每页10条数据

修正后的完整代码

// 从URI第3段获取当前页码,默认值为1
$current_page = $this->uri->segment(3, 1);
// 设定每页显示10条数据
$per_page = 10;

// 查询总记录数(不带LIMIT,用于计算分页总数)
$SQL = "SELECT * FROM list AS a " . $search_condition; 
$query = $this->db->query($SQL); 
$finaldata = array();
$finaldata['num_results'] = $query->num_rows();      

// 计算数据起始位置(当use_page_numbers为TRUE时,公式为 (页码-1)*每页条数)
$start_limit = ($current_page - 1) * $per_page;

// 查询当前页数据(带LIMIT)
$SQL = "SELECT * FROM list AS a " . $search_condition . " LIMIT " . $start_limit . "," . $per_page; 
$query = $this->db->query($SQL); 

if($query->num_rows() > 0)
{   
    $finaldata['data'] = $query->result_array();              
} 

// 加载并配置分页库
$this->load->library('pagination');
$config = array();
$config['base_url'] = site_url("adminuser/list");
$config['total_rows'] = $finaldata['num_results'];
$config['per_page'] = $per_page; // 这里使用设定的每页10条
$config['uri_segment'] = 3;
$config['use_page_numbers'] = TRUE;
$config['num_links'] = 5;
// 分页HTML容器配置
$config['full_tag_open'] = '<div class="pagination">';
$config['full_tag_close'] = '</div>';
// 补充当前页标签的开标签(原代码缺失,会导致HTML结构错误)
$config['cur_tag_open'] = '<span class="current">';
$config['cur_tag_close'] = '</span>';

$this->pagination->initialize($config);
$finaldata['pagination'] = $this->pagination->create_links();
$this->load->view('admin/list',$finaldata);

关键修正点说明

  • 明确设定$per_page = 10,固定每页显示条数
  • 使用$this->uri->segment(3, 1)正确获取URI中的页码,避免空值引发的计算错误
  • 将分页配置的per_page参数改为$per_page,确保分页逻辑正确
  • 补充原代码缺失的cur_tag_open配置,保证分页组件的HTML结构完整

内容的提问来源于stack exchange,提问作者John Ken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:09:50