Registros não limitados na página de pesquisa usando a paginação do codecetador

Situação

Eu tenho um formulário de pesquisa que redireciona para uma página de resultados de pesquisa na qual eu quero implementar a Paginação do Codeigniter. Meu limite não está funcionando. Então, todos os resultados são mostrados em vez do meu $limit = 4;

Aqui está o meu código de controlador:

  function searchresults() { $this->breadcrumbs->page = array('link'=> base_url().'home/search' ,'title' => 'Bedrijven Zoeken' ); $this->breadcrumbs->method = array('link'=> base_url().'home/searchresults' ,'title' => 'Zoekresultaten' ); $data['breadcrumbs'] = $this->breadcrumbs->get(); $match = $this->input->post('search'); if(strlen($this->input->post('cookie')) > 0){ $match2 = $this->input->post('cookie'); } else{ $match2 = '9101'; } $data['query'] = $this->bedrijven_model->get_search($match, $match2); $limit = 4; $this->load->library('pagination'); $config['base_url'] = base_url().'home/searchresults/'; $config['total_rows'] = count($data['query']); $config['per_page'] = $limit; $config['uri_segment'] = 3; $this->pagination->initialize($config); $data['links'] = $this->pagination->create_links(); $this->load->view('views/header'); $this->load->view('views/searchresults', $data); $this->load->view('views/footer'); } 

Questão

Qual poderia ser o problema? Estou esquecendo de algo?


EDITAR

Ainda não consigo conseguir que funcione. Isto é o que eu tenho até agora.

Controlador:

  function searchresults() { $this->breadcrumbs->page = array('link'=> base_url().'home/search' ,'title' => 'Bedrijven Zoeken' ); $this->breadcrumbs->method = array('link'=> base_url().'home/searchresults' ,'title' => 'Zoekresultaten' ); $data['breadcrumbs'] = $this->breadcrumbs->get(); $match = $this->input->post('search'); if(strlen($this->input->post('cookie')) > 0){ $match2 = $this->input->post('cookie'); } else{ $match2 = '9101'; } $this->load->library('pagination'); $config['base_url'] = base_url().'home/searchresults/'; $config['per_page'] = 4; $this->pagination->initialize($config); $data['links'] = $this->pagination->create_links(); //$data['query'] = $this->bedrijven_model->get_search($match, $match2, 2147483647, 0); /*large number as limit to retrieve all the rows*/ $data['query_curr'] = $this->bedrijven_model->get_search($match, $match2, $config['per_page'], $this->uri->segment(3) ); $this->load->view('views/header'); $this->load->view('views/searchresults', $data); $this->load->view('views/footer'); } 

Modelo:

 function get_search($match, $match2, $limit, $offset) { $this->db->limit($limit, $offset); //rest of the code } 

Meus pontos de vista:

   
<a href="https://stackoverflow.com/questions/16775206/records-not-limited-on-searchpage-using-codeigniter-pagination/bedrijven/">
<a href="https://stackoverflow.com/questions/16775206/records-not-limited-on-searchpage-using-codeigniter-pagination/bedrijven/">

Categorie:

Postcode:

Plaats:

Tags:




pagination->create_links(); ?>

Você deve definir o deslocamento e limitar quando você consulta do database para fazer a paginação funcionar.

seu modelo get_search deve ser assim

 function get_search($match, $match2, $limit, $offset){ $this->db->limit($limit, $offset); /*Rest of the code*/ } 

sua consulta atual se torna

 $data['query'] = $this->bedrijven_model->get_search($match, $match2, 2147483647, 0); /*large number as limit to retrieve all the rows*/ 

Você precisa consultar outro tempo com offset e limitar assim

 $data['query_curr'] = $this->bedrijven_model->get_search($match, $match2, $config['per_page'], $this->uri->segment(3) ); 

Aqui, $ config [‘per_page’] é o limite e o deslocamento é retirado do segmento url (Você precisa inicializar o ul helper. Você precisa usar esta variável query_curr na visualização. Esta é a maneira de usar paginação e número correto de linhas serão exibidas.

Última coisa, você não precisa enviar create_links () como variável na visualização. Você pode usar isso diretamente na visualização.

ATUALIZAR:

Altere sua function de searchresult para isso

 function searchresults() { $this->breadcrumbs->page = array('link'=> base_url().'home/search' ,'title' => 'Bedrijven Zoeken' ); $this->breadcrumbs->method = array('link'=> base_url().'home/searchresults' ,'title' => 'Zoekresultaten' ); $data['breadcrumbs'] = $this->breadcrumbs->get(); $match = $this->input->post('search'); if(strlen($this->input->post('cookie')) > 0){ $match2 = $this->input->post('cookie'); } else{ $match2 = '9101'; } $data['query'] = $this->bedrijven_model->get_search($match, $match2, 2147483647, 0); $this->load->library('pagination'); $config['base_url'] = base_url().'home/searchresults/'; $config['total_rows'] = count($data['query']); $config['per_page'] = 4; $this->pagination->initialize($config); $data['links'] = $this->pagination->create_links(); //$data['query'] = $this->bedrijven_model->get_search($match, $match2, 2147483647, 0); /*large number as limit to retrieve all the rows*/ $data['query_curr'] = $this->bedrijven_model->get_search($match, $match2, $config['per_page'], $this->uri->segment(3) ); $this->load->view('views/header'); $this->load->view('views/searchresults', $data); $this->load->view('views/footer'); }