Не работает скрипт нумерации страниц

У меня есть много записей в моей базе данных. Я пытаюсь отобразить одну запись для каждой страницы. Когда я выбираю кнопку отправки для поиска записей из базы данных, сначала отображается одна отдельная запись, а затем, когда я нажимаю следующую цифровую ссылку нумерации страниц, я не получаю никаких записей. результат вместо того, чтобы я получаю

A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: controllers/searchresult.php
Line Number: 17

Мой контроллер начинается здесь

public function users($limit=1)
{
$this->load->helper('url');
$data = array();
$offset=1;
$look = $this->input->post('look');
$age = $this->input->post('age');
$age_from = $this->input->post('age_from');
$age_to = $this->input->post('age_to');
$se_ct = $this->input->post('sect');
$subsect = $this->input->post('subsect');
$coun_try = $this->input->post('country');
$sta_te = $this->input->post('state');
$ci_ty = $this->input->post('city');
$qualification = $this->input->post('qualification');
$results = $this->searchresultss->login($look, $age, $age_to, $age_from, $se_ct, $subsect, $coun_try, $sta_te, $ci_ty, $qualification);
$this->load->helper('url');
$config = array();
$config['base_url'] = base_url().'searchresult/users';
$config['total_rows'] = count($results);
$config['per_page'] = $limit;
$this->load->library('pagination', $config);
$data['pagination_links'] = $this->pagination->create_links();
$data['results'] = array_slice($results,$offset,$limit);
$this->load->view('searchresult', $data);
}

**my model page starts here**

public function login($look, $age, $age_to, $age_from, $se_ct, $subsect, $coun_try, $sta_te, $ci_ty, $qualification)
{
return $this->db->query("SELECT *
FROM users
WHERE

if('$se_ct'!='',sect =  '$se_ct' AND if('$subsect' !='',subsect =  '$subsect',subsect like  '%%'),sect like  '%%' AND subsect like  '%%')
AND
IF( '$coun_try' !='', country =  '$coun_try'
AND
if('$sta_te' !='', state =  '$sta_te'
AND
if('$ci_ty' !='',city =  '$ci_ty',city like  '%%'),state LIKE  '%%'
AND city LIKE  '%%'), country LIKE  '%%'
AND state LIKE  '%%'
AND city LIKE  '%%' )
AND age >=  '$age_from'
AND age <=  '$age_to'
AND
IF('$qualification' !='',qualification =  '$qualification',  qualification LIKE  '%%' )
AND gender =  '$look'
And status='1'")->result();
}
}

**My view page starts here**

if (empty($results)) {
echo 'Results set is empty';
} else {
foreach ($results as $data) {
echo $data->email.'<br />';
}
}
echo $pagination_links;

0

Решение

Я не уверен, что у вас есть в строке № 17, но я могу вам чем-то помочь, вам нужно сделать:

$this->pagination->initialize($config);

чтобы начать нумерацию страниц, вам не хватает этой строки. Пагинация не инициализируется в вашем коде.

0

Другие решения

Я могу помочь вам с другим советом: вы должны отправить смещение модели, чтобы сделать запрос БД. И вы должны повторно отправить поля поиска, если вы нажимаете на одну из ссылок нумерации страниц, данные публикации больше не существуют при следующем вызове, поэтому вы потеряли искомые значения.

Я исправил эту проблему раньше с помощью небольшого трюка с jquery. Ссылки на страницы должны повторно отправлять форму, а не просто ссылку. Что-то вроде

$('.pagination a').click(function(){

$('#your-form').submit();
});

В противном случае вы должны снова пройти весь поиск по строке запроса, и этот метод действительно ужасен и делает ваш контроллер запутанным и полным «если»

0