Как отобразить результаты поиска с 20 строками на странице с нумерацией страниц?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как отобразить результаты поиска с 20 строками на странице с нумерацией страниц?

Сообщение Anonymous »

Я работаю над старым сайтом Codeigniter 3.1.9 на PHP 8.2.12. Мой вопрос: возможно ли разделить результаты поиска из базы данных, скажем, на 20 результатов на страницу плюс еще 2 строки заголовков для компиляции всей страницы (страниц) с нумерацией страниц CI?
В моей базе данных в общей сложности 58 записей рецептов в таблице под названием «рецепт». В этой таблице у меня есть 14 полей: идентификатор, имя, текст кнопки, имя ссылки, время, изображение, ингредиенты, оборудование, подготовка, направления, категория, подкатегория, обновление и ключевые слова.
Из них полей, в настоящее время я включаю в поиск только 4. Это идентификатор, имя, категория и подкатегория.
У меня проблема в том, что все, что ищется, не имеет ограничений по высоте и продолжительности результатов поиска. Допустим, кто-то ищет что-то общее, например «рецепт» или «рецепты», поиск выдаст каждый рецепт. Это то, чего я хочу, но я бы предпочел, чтобы это не перегружало пользователя распечаткой всех 58 записей и необходимостью прокручивать все 58 строк записей одновременно.
Итак, это меня подводит. на мой вопрос. Возможно ли вывести эти результаты поиска в контейнер результатов, скажем, до 20 результатов одновременно, и иметь возможность просматривать оставшуюся часть результатов постранично?
Я уже использую нумерацию страниц в CI3 в административном разделе книги рецептов. Однако он настроен на разбиение на страницы на основе всех полей для каждого рецепта.
Я все еще новичок в PHP, и этот проект был брошен мне на колени, чтобы разобраться и попытаться расшифровать этого монстра сайт оказался довольно сложной задачей. Я поддерживаю его работу начиная с Codeigniter 1.83. Пожалуйста, будьте любезны, пока я разбираюсь в этом.
Кроме того, изначально я не писал код для этого сайта, поэтому мне приходится перепроектировать почти все. Я предоставлю любые файлы, которые вам могут понадобиться для просмотра. Я просто не хочу делать свой пост длиннее, чем он есть, и перегружать вас ненужным кодом.
При этом вот часть кода, который вам может понадобиться:< /p>
Контроллер Recipe.php (для раскладывающейся книги и поиска)

Код: Выделить всё

    function flipbook(){
$this->require_login();
$this->load->library('pagination');
$config['base_url'] = site_url('recipe/flipbook');
$config['total_rows'] = $this->recipe_model->num_rows();
$config['uri_segment'] = '3';
$config['per_page'] = 1;
$config['num_links'] = 10;
$config['display_pages'] = TRUE;
$config['full_tag_open'] = '';
$config['full_tag_close'] = '';
$this->pagination->initialize($config);
$recipe = $this->recipe_model->read_records($config['per_page'], $this->uri->segment(3))->row_array();
$data = array(
'title' => "Shirley's Recipes:".$recipe['name'],
'columns' => array('toc', 'admin/page/recipe_flipbook'),
'recipe' => $recipe,
'updated' => $this->format_date($recipe['updated'])
);
$this->load->view('templates/main', $data);
}

function search(){
if($this->input->method() === 'post'){
$search = $this->input->post('query');
$results = $this->recipe_model->search($search);
$data = array(
'title' => "Shirley's Recipes:Search Results",
'columns' => array('toc', 'public/page/search_results'),
'recipes' => $results,  // $results is being renamed $recipes.  I don't really know why though yet...
'search' => $search
);
$this->load->view('templates/main', $data);
}
else{
redirect('recipe');
}
}
Модель Recipe_model

Код: Выделить всё

function search($search){
$terms = explode(' ', $search);
$match = " ";
foreach($terms as $term){
$match .= $term;
}
$querystr = "SELECT id, name, category, subcategory, keywords, MATCH(name, category, subcategory, keywords) AGAINST('".$match."') as score FROM recipe WHERE MATCH(name, category, subcategory, keywords) AGAINST('".$match."') ORDER BY name;";
$q = $this->db->query($querystr);
return $q->result();
}
Просмотр search_result.php

Код: Выделить всё





Подробнее здесь: [url]https://stackoverflow.com/questions/79083081/how-to-display-search-results-with-20-rows-per-page-with-pagination[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»