Я работаю над старым сайтом Codeigniter 3.1.9 на PHP 8.2.12. Мой вопрос: возможно ли разделить результаты поиска из базы данных, скажем, на 20 результатов на страницу плюс еще 2 строки заголовков для компиляции всей страницы (страниц) с нумерацией страниц CI?
В моей базе данных в общей сложности 58 записей рецептов в таблице под названием «рецепт». В этой таблице у меня 14 полей. Однако на данный момент я включаю в поиск только 4. Это идентификатор, имя, категория и подкатегория.
У меня проблема в том, что все, что ищется, не имеет ограничения на строку результатов в отношении продолжительности результатов поиска. Итак, допустим, кто-то ищет что-то столь же общее, как «рецепт» или «рецепты», поиск вернет каждую запись рецепта. Это то, чего я хочу, но я бы предпочел, чтобы поиск обрабатывал это, не показывая все 58 записей одновременно.
Итак, это подводит меня к моему вопросу: как мне получить результаты поиска? выводить результаты в контейнер, содержащий до 19 строк результатов одновременно, иметь возможность просматривать оставшуюся часть результатов постранично?
Я уже использую нумерацию страниц CI в моем административном разделе есть флипбук с рецептами. Однако это настроено для работы на основе ВСЕХ полей для каждого рецепта.
Я все еще новичок в PHP, и мне пришлось разобраться с этим проектом. Позвольте мне просто сказать, что попытка расшифровать этот монстр-сайт оказалась довольно сложной задачей. Я продолжаю это делать начиная с Codeigniter 1.83. Пожалуйста, будьте любезны, пока я разбираюсь в этом.
Кроме того, как вы, наверное, заметили, изначально я не писал код для этого сайта. Итак, мне приходится реконструировать почти все. Я предоставлю вам еще файлы, которые могут вам понадобиться. Я просто не хочу продлевать свой пост дольше, чем он есть.
При этом, вот некоторый код, который вам может понадобиться:
Контроллер 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'] = 9; // You will see 10 numerical link buttons in pagination.
$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'); //modify here:
//$results = $this->recipe_model->search($search);
$page = $this->uri->segment(3);
$perPage = 19;
$this->load->library('pagination');
$config['base_url'] = site_url('recipe/search');
$config['total_rows'] = $this->recipe_model->num_rows();
$config['uri_segment'] = '3';
$config['per_page'] = 1;
$config['num_links'] = 4; // You will see 10 numerical link buttons in pagination.
$config['display_pages'] = TRUE;
$config['full_tag_open'] = '';
$config['full_tag_close'] = '';
$this->pagination->initialize($config);
$results = $this->recipe_model->search($search, $page, $perPage);
$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, $currentPage = 1, $perPage = 19){
$offset = ($currentPage = 1) * $perPage;
$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 LIMIT ".$perPage." OFFSET ".$offset.";";
$q = $this->db->query($querystr);
return $q->result();
}
Просмотр search_result.php
Подробнее здесь: https://stackoverflow.com/questions/790 ... pagination
Как отобразить результаты поиска с 19 строками на странице и нумерацией страниц? ⇐ Php
Кемеровские программисты php общаются здесь
1730176792
Anonymous
Я работаю над старым сайтом Codeigniter 3.1.9 на PHP 8.2.12. Мой вопрос: возможно ли разделить результаты поиска из базы данных, скажем, на 20 результатов на страницу плюс еще 2 строки заголовков для компиляции всей страницы (страниц) с нумерацией страниц CI?
В моей базе данных в общей сложности 58 записей рецептов в таблице под названием «рецепт». В этой таблице у меня 14 полей. Однако на данный момент я включаю в поиск только 4. Это идентификатор, имя, категория и подкатегория.
У меня проблема в том, что все, что ищется, не имеет ограничения на строку результатов в отношении продолжительности результатов поиска. Итак, допустим, кто-то ищет что-то столь же общее, как «рецепт» или «рецепты», поиск вернет каждую запись рецепта. Это то, чего я хочу, но я бы предпочел, чтобы поиск обрабатывал это, не показывая все 58 записей одновременно.
Итак, это подводит меня к моему вопросу: как мне получить результаты поиска? выводить результаты в контейнер, содержащий до 19 строк результатов одновременно, иметь возможность просматривать оставшуюся часть результатов постранично?
Я уже использую нумерацию страниц CI в моем административном разделе есть флипбук с рецептами. Однако это настроено для работы на основе ВСЕХ полей для каждого рецепта.
Я все еще новичок в PHP, и мне пришлось разобраться с этим проектом. Позвольте мне просто сказать, что попытка расшифровать этот монстр-сайт оказалась довольно сложной задачей. Я продолжаю это делать начиная с Codeigniter 1.83. Пожалуйста, будьте любезны, пока я разбираюсь в этом.
Кроме того, как вы, наверное, заметили, изначально я не писал код для этого сайта. Итак, мне приходится реконструировать почти все. Я предоставлю вам еще файлы, которые могут вам понадобиться. Я просто не хочу продлевать свой пост дольше, чем он есть.
При этом, вот некоторый код, который вам может понадобиться:
Контроллер 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'] = 9; // You will see 10 numerical link buttons in pagination.
$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'); //modify here:
//$results = $this->recipe_model->search($search);
$page = $this->uri->segment(3);
$perPage = 19;
$this->load->library('pagination');
$config['base_url'] = site_url('recipe/search');
$config['total_rows'] = $this->recipe_model->num_rows();
$config['uri_segment'] = '3';
$config['per_page'] = 1;
$config['num_links'] = 4; // You will see 10 numerical link buttons in pagination.
$config['display_pages'] = TRUE;
$config['full_tag_open'] = '';
$config['full_tag_close'] = '';
$this->pagination->initialize($config);
$results = $this->recipe_model->search($search, $page, $perPage);
$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, $currentPage = 1, $perPage = 19){
$offset = ($currentPage = 1) * $perPage;
$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 LIMIT ".$perPage." OFFSET ".$offset.";";
$q = $this->db->query($querystr);
return $q->result();
}
Просмотр search_result.php
Подробнее здесь: [url]https://stackoverflow.com/questions/79083081/how-to-display-search-results-with-19-rows-per-page-with-pagination[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия