Как реализовать пагинацию на странице поиска?
0
Доброго времени суток! Решил я закончить все страницы проекта, но как бы не бился над пагинацией в поиске, пока она не работает должным образом. У меня создаётся впечатление, что $row_count задаёт лимит вывода данных из базы данных, поскольку даже в строке найдено выдает то же число, что и заданное в данной переменной. Количество кнопок изменяется, но если уходить с первой страницы выдаёт "найдено 0" ну и соответсвенно нет результата поиска. Что нужно подправить?
Модель:
<?php
class Search_Model extends CI_Model{
public function search($q, $row_count, $offset){
$array_search = array(
'name' => $q,
'descriptions' => $q
);
$query = $this->db
->or_like($array_search)
->get('movie', $row_count, $offset);
return $query->result_array();
}
public function show($q){
$array_search = array(
'name' => $q,
'descriptions' => $q
);
$query = $this->db
->or_like($array_search)
->limit(100)
->get('movie');
return $query->result_array();
}
}
Контроллер:
<?php
defined('BASEPATH') OR exit('No direct script asses allowed');
class Search extends MY_Controller {
public function __construct(){
parent::__construct();
}
public function index($slug = NULL) {
$this->data['title'] = "Поиск";
$this->load->library('pagination');
$this->data['search_result'] = null;
$offset = (int) $this->uri->segment(3);
$row_count = 10;
$count = 0;
$this->load->model('search_model');
$this->data['search_result'] = array();
if($this->input->get('q_search')) { //получаем гет запрос из формы
$count = count($this->search_model->show($this->input->get('q_search')));
$p_config['base_url'] = '/search/?q_search='.$this->input->get('q_search').'/';
$this->data['search_result'] = $this->search_model->search($this->input->get('q_search'), $row_count, $offset);
}else{
show_404();
}
$this->data['count'] = $count;
$p_config['total_rows'] = $count;
$p_config['per_page'] = $row_count;
$p_config['full_tag_open'] = "<ul class='pagination'>";
$p_config['full_tag_close'] ="</ul>";
$p_config['num_tag_open'] = '<li>';
$p_config['num_tag_close'] = '</li>';
$p_config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>";
$p_config['cur_tag_close'] = "<span class='sr-only'></span></a></li>";
$p_config['next_tag_open'] = "<li>";
$p_config['next_tagl_close'] = "</li>";
$p_config['prev_tag_open'] = "<li>";
$p_config['prev_tagl_close'] = "</li>";
$p_config['first_tag_open'] = "<li>";
$p_config['first_tagl_close'] = "</li>";
$p_config['last_tag_open'] = "<li>";
$p_config['last_tagl_close'] = "</li>";
//Инициализируем пагинацию
$this->pagination->initialize($p_config);
$this->data['pagination'] = $this->pagination->create_links();
$this->load->view('templates/header', $this->data);
$this->load->view('search', $this->data);
$this->load->view('templates/footer');
}
}