user1070111
user1070111

Reputation: 59

CodeIgniter $this->pagination->create_links(); returning blank string

public function viewconsultant($id1='')
{

    $id1 = $id1 ? $id1 : 1;
    $pagenum=5;
    $start=($id1-1)*$pagenum;
    $users = $this->db->get_where('connections', array('user_id'=>97));
    $pageall = count($users);
    $config['total_rows']=$pageall;
    $config['per_page']=$pagenum;

    $config['num_links']=4;
    $config['base_url']="localhost/~chrisfu/linkedin2/index.php/connections/viewconsultant";
    $config['use_page_numbers']=true;

    $this->load->library('pagination');
    $this->pagination->initialize($config);
    $query = $this->db->get_where('connections', array('user_id'=>97), $pagenum, $start);
    $data['connections'] = $query->result();
    $this->load->view('profile_view',$data);
}

The create_links() does not work well, it just displays a blank string. I tried this localhost/~chrisfu/linkedin2/index.php/connections/viewconsultant/2, it can jump to second page, but not pagination links created blow the table. please help!!

Upvotes: 1

Views: 4695

Answers (2)

Nil'z
Nil'z

Reputation: 7475

Try this:

function viewconsultant($id1=1, $offset = 0){
    $this->load->library('pagination');
    $pagenum=5;
    //$users  = $this->db->where('connections', array('user_id'=>97))->limit('20', $offset);
    $total      = $this->db->where('connections', array('user_id'=>97));
    $pageall    = $total->num_rows();
    //$users = $this->db->get_where('connections', array('user_id'=>97));
    //$start=($id1-1)*$pagenum;
    //$pageall = count($users);
    $config['total_rows']       = $pageall;
    $config['per_page']         = $pagenum;
    $config["uri_segment"]      = 3;
    $config['num_links']        = 4;
    $config['base_url']         = base_url()."/index.php/connections/viewconsultant/";
    $config['use_page_numbers'] = true;
    $this->load->library('pagination');
    $this->pagination->initialize($config);
    $query = $this->db->get_where('connections', array('user_id'=>97), $pagenum, $this->uri->segment(3));
    $data['connections'] = $query->result();
    $data['links']  = $this->pagination->create_links();
    $this->load->view('profile_view',$data);
}

Now, just echo $links in your view file to get the pagination.

Upvotes: 1

The problem is that you are not creating the links..

$this->load->library('pagination');
$this->pagination->initialize($config);

// add the line below to your code
$data['links'] = $this->pagination->create_links();
// debug
// echo $data['links'];

$query = $this->db->get_where('connections', array('user_id'=>97), $pagenum, $start);
$data['connections'] = $query->result();
$this->load->view('profile_view',$data);

Also, you can omit the first line in your method by doing the following:

public function viewconsultant($id1=1)
{

    // line below no longer necessary
    //$id1 = $id1 ? $id1 : 1;
}

Upvotes: 3

Related Questions