Codeigniter分页列出数据库表中的所有记录,而不是列表限制



我使用了以下代码进行代码点火器分页。但它列出了数据库表中的所有reocrd。分页不起作用

$SQL = "SELECT * FROM list AS a ".$search_condition."  "; 
$query = $this->db->query($SQL); 
$finaldata=array();
$finaldata['num_results']= $query->num_rows();      
//how many blogs will be shown in a page
$limit = $finaldata['num_results'];
$start_limit = ($offset-1) * $limit;
echo $SQL = "SELECT * FROM list AS a   ".$search_condition." LIMIT ".$start_limit.",".$limit." "; 
$query = $this->db->query($SQL); 
if($query->num_rows() > 0)
{   
$finaldata['data']= $query->result_array();              
} 
// load pagination library
$this->load->library('pagination');
$config = array();
$config['base_url'] = site_url("adminuser/list");
$config['total_rows'] = $finaldata['num_results'];
$config['per_page'] = $limit;
//which uri segment indicates pagination number
$config['uri_segment'] = 3;
$config['use_page_numbers'] = TRUE;
//max links on a page will be shown
$config['num_links'] = 5;
//various pagination configuration
$config['full_tag_open'] = '<div class="pagination">';
$config['full_tag_close'] = '</div>';
<! some code here ->
$config['cur_tag_close'] = '</span>';
$this->pagination->initialize($config);
$finaldata['pagination'] = $this->pagination->create_links();
$this->load->view('admin/list',$finaldata);

我试图在列表页中每页列出10条记录。但不起作用

首先声明无用的变量。您的第一个SQL应该包含COUNT(*)

你真的不需要$limit——你只使用过一次,下面的一行声明——你的缩进也让它几乎不可读,尽量不要用点连接字符串,使用花括号。

"SELECT * FROM list AS a {$search_condition} LIMIT {$start_limit}, {$limit}";

现在你可以好好读了,我认为它应该能解决你的问题。尽量优化你的代码,不要一团糟。最后,在您的配置中,您有与total_rows相同的per_page限制。您定义了$limit = $finaldata['num_results'],请更改此值:

$config['per_page'] = $limit;

最新更新