Codeigniter分页不显示页面相关数据,而是显示整个数据集

时间:2017-10-29 18:36:24

标签: php codeigniter pagination codeigniter-3

这是我的控制器:

function index()
{
    $data['title']="Post";
    $this->load->library('pagination');
    $config['base_url'] = base_url().'Post/index';
    $config['total_rows'] = $this->post_model->get_total_count();
    $config['per_page'] = 1;
    $config['uri_segment'] = 1;
    $this->pagination->initialize($config);
    $data['posts'] = $this->post_model->get_single_post($config['per_page'],$this->uri->segment(1));

    $this->load->view('frontend/layouts/header',$data);
    $this->load->view('frontend/view_post',$data);
    $this->load->view('frontend/layouts/footer');
}

模型

function get_single_post(){
$query= $this->db->select('*')
    ->from('tbl_post,tbl_users')
    ->where('tbl_post.post_created=tbl_users.user_id')
    ->where('tbl_post.post_status',1)
    ->order_by('tbl_post.post_id','asc')
    ->get();
    $data = $query->result_array();
    return $data;
    }



function get_total_count(){
    $this->db->select('*');
    $this->db->from('tbl_post');
    $query = $this->db->get();
    return $query->num_rows();
    }

相关页面数据未显示。它在一个页面中显示所有数据!

2 个答案:

答案 0 :(得分:1)

  

$config['uri_segment'] = 1你确定吗?? Check this CI example

正如您所提到的,问题$config['base_url'] = base_url().'Post/index'; $config['uri_segment'] = 1应为$config['uri_segment'] = 2

同样也是这样做

在控制器中

$config['uri_segment'] = 1;
$this->pagination->initialize($config);

$data['links'] = $this->pagination->create_links();
$data['posts'] = $this->post_model->get_single_post($config['per_page'],$this->uri->segment(1));

在视图中

echo $links;

修改01

在模型中添加此

function get_single_post($page,$limit) # Changed
{
    $query= $this->db->select('*')
        ->from('tbl_post,tbl_users')
        ->where('tbl_post.post_created=tbl_users.user_id')
        ->where('tbl_post.post_status',1)
        ->limit($page,$limit) # Changed
        ->order_by('tbl_post.post_id','asc')
        ->get();
    $data = $query->result_array();
    return $data;
}

答案 1 :(得分:0)

有很多问题。

  1. $config['uri_segment']不能是1.应该是3 所以把它固定到

    $config['uri_segment'] = 3;

  2. 段1表示控制器名称。 2表示功能名称。 3表示页码。 如果您使用1,它将用页码替换控制器名称。

    1. 您将参数传递给模型函数但模型没有接收参数。所以您的函数应该是这样的

      function get_single_post($limit,$page_no){

    2. 您的模型返回的所有记录不是当前页面记录。所以添加限制

      ->limit($page_no,$limit)//remember page_no should be 0 for 1,1 for 2.