Я переводил и в (integer) и удалял пробелы вокруг параметра но всё равно выводится только первая страница. Но если в коде жёстко ввести число то без проблем работает.
Проблема с переменной $start.
Можно подумать что где то ошибка но если вывести в любом месте значение переменной то оно верное.
Контроллер
public function result($string,$start,$redirect=TRUE,$view_type='grid')
{
$string = rawurldecode($string);
$data = array();
$values = explode("+",$string);
foreach ($values as $value)
{
$get = explode("=",$value);
$s = (isset($get[1]))?$get[1]:'';
$val = explode(",",$s);
if(count($val)>1)
{
$data[$get[0]] = $val;
}
else
$data[$get[0]] = (isset($get[1]))?$get[1]:'';
}
$value = array();
$value['data'] = $data;
// echo "<pre>";
// print_r($data);
// die;
#get estates based on the advanced search criteria
$total = $this->show_model->get_advanced_search_result($data,'total');
$value['pages'] = configPagination('show/result/'.$string,$total,5,$this->PER_PAGE);
$value['query'] = $this->show_model->get_advanced_search_result($data,'',$start, $this->PER_PAGE);
if($redirect==false) {
$res = array();
$res['query'] = $value['query'];
$res['url'] = site_url('results/'.$string);
return $res;
}
$this->load->model('user/post_model');
$value['categories'] = $this->post_model->get_all_categories();
$data = array();
$data['content'] = load_view('adsearch_view',$value,TRUE);
$data['alias'] = 'ad_search';
load_template($data,$this->active_theme);
Модель
function get_advanced_search_result($data,$total,$start,$limit = '') {
if(isset($data['sort_by']) && trim($data['sort_by'])!='') {
$info = explode('_',$data['sort_by']);
$this->db->order_by($info[0],$info[1]);
}
else
{
$this->db->order_by('featured', 'desc');
$this->db->order_by('id', "desc");
}
if(isset($data['city']) && trim($data['city'])!='any')
{
$this->db->where('city',$data['city']);
}
if(isset($data['category']) && trim($data['category'])!='any')
{
$this->db->where('category',$data['category']);
$this->db->or_where('parent_category',$data['category']);
}
if(isset($data['plainkey']) && trim($data['plainkey'])!='') {
$search_string = rawurldecode($data['plainkey']);
$search_string = trim($search_string);
$search_string = explode(" ", $search_string);
$sql = "";
$flag = 0;
foreach ($search_string as $key) {
if($flag==0) {
$flag = 1;
}
else {
$sql .= "AND ";
}
$sql .= "search_meta LIKE '%".$key."%' ";
}
$this->db->where($sql);
}
if(isset($data['range-slider']) && trim($data['range-slider'])!='')
{
$range = explode(';',$data['range-slider']);
$this->db->where('price >=',(int)$range[0]);
$this->db->where('price <=',(int)$range[1]);
// $this->db->or_where('contact_for_price',1);
}
$this->db->where('status',1);
if($total==='all')
$query = $this->db->get('posts');
elseif($total==='total')
{
$query = $this->db->get('posts');
return $query->num_rows();
}
else
$query = $this->db->get('posts',$limit,$start);
return $query;
}