我试图在CodeIgniter中进行分页,但我猜错了。
我的代码如下。
blog_model
function posts($cat_id='')
{
$config['base_url'] = 'http://example.com/blog';
$config['total_rows'] = 3;
$config['per_page'] = 1;
$config['num_links'] = 20;
$this->pagination->initialize($config);
if($cat_id) $this->db->where('cat_id',$cat_id);
$query = $this->db->get('posts', $config['per_page'], $this->uri->segment(3));
return $query->result();
}
blog_view
<?php echo $this->pagination->create_links(); ?>
答案 0 :(得分:0)
CI中的分页可能会变得棘手。 分页只是构建链接,您仍然需要为数据库查询正确构建limit
和offset
。
您必须通过网址
将页码传递到您的函数中function posts($cat_id='', $page = FALSE)
{
$config['base_url'] = 'http://example.com/blog';
$config['total_rows'] = 3;
$config['per_page'] = 1;
$config['num_links'] = 20;
$config['uri_segment'] = 3; // <- verify this one
$this->pagination->initialize($config);
// set the page to 1 if the page is missing from the URL
$page = ($page === FALSE ? 1 : $page);
// calculate the offset for the query
$offset = ($page - 1 ) * $config['per_page'];
if($cat_id) $this->db->where('cat_id',$cat_id);
$query = $this->db->get('posts', $config['per_page'], $offset);
return $query->result();
}
根据评论编辑:
我也不确定您的段3对于页码的位置是否正确。如果是/blog/posts/cat_id/1
,则页码(您的偏移量)位于第4段。