Проблемы с разбивкой на страницы Codeigniter на контроллерах

Я создаю веб-сайт для опроса с использованием PHP-фрейма Codeigniter. Но в настоящее время я застрял, так как не могу понять, где в скрипте обнаружена ошибка.

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

Вот мой код:

## this is a general method for ALL data selection operations and pagination ##
public function select_db_data_paginate($table_name, $array_attributes){

//pagination configuration
//configuration details for pagination
$config['base_url'] = base_url().$array_attributes['base_url'];

$config['total_rows'] = $this->db->count_all('naphs_roles');

$config['per_page'] = $array_attributes['per_page'];

$config['uri_segment'] = 3;

$config['display_pages'] = TRUE;

//PAGINATION STYLING
$config['prev_link'] = '❮ Prev';

$config['next_link'] = 'Next ❯';

$config['attributes'] = array('class' => 'w3-button');

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

//where to start fetching DB records
$start_from =  ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;

//fetch the records
//$query = $this->db->get($table_name, $config['per_page'], $start_from);

$query = $this->db->get($table_name,$config['per_page'], $start_from);

$result = $query->result_array();

return $result;

}

А вот как я использовал описанный выше метод на одном из своих контроллеров.

//fetch results based on the limit and start point. this data will be used to draw a table

$data['naphs_members'] = $this->Naphs_Model->select_db_data_paginate('naphs_members',array('base_url' => 'index.php/members/manage', 'per_page' => 2));

//create the pagination links

$data['pagination_links'] = $this->pagination->create_links();

//This data will be used to draw a table
$naphs_members = $this->Naphs_Model->select_db_data_paginate('naphs_members', array('base_url' => 'index.php/members/manage', 'per_page' => 2));

А вот еще один метод контроллера, который использует метод разбивки на страницы, созданный в модели выше:

//fetch results based on the limit and start point. this data will be used to draw a table
$data['naphs_roles'] = $this->Naphs_Model->select_db_data_paginate('naphs_roles',array('base_url' => 'index.php/roles/manage', 'per_page' => 2));

//create the pagination links
$data['pagination_links'] = $this->pagination->create_links();

//This data will be used to draw a table
$naphs_roles = $this->Naphs_Model->select_db_data_paginate('naphs_roles',array('base_url' => 'index.php/roles/manage', 'per_page' => 2));

Наконец, это мои маршруты для страниц (методов):

$route['members/manage/(:any)'] = 'admin/Naphs_Members/manage/$1';

$route['roles/manage/(:any)'] = 'admin/Naphs_Roles/manage/$1';

Оба представления работают отлично, и ссылки на страницы отображаются хорошо. Однако при щелчке по первой ссылке (страница 1) каждой пагинации отображается страница 404.

Кроме того, таблица из 6 записей показывает только 4, а таблица из 4 записей показывает только 2 ... и так далее.

При необходимости мои скриншоты будут размещены здесь. Спасибо!

Не работает. Я получил ошибку: «вызов функции-члена result_array на логическом». Когда я использую $ this-> db-> get ('table_name'), ошибка не отображается, но полученные записи являются неполными.

Etom Usang 06.07.2018 06:53

покажи код ур, пожалуйста

Pradeep 06.07.2018 06:54

Я решил ... пожалуйста, проверьте мой ответ.

Etom Usang 06.07.2018 15:37
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
105
1

Ответы 1

Решено! Я увидел проблему и исправил ее. В методе Model я ошибочно извлекал все строки таблицы из «фиксированной» таблицы вместо того, чтобы использовать параметр $ table_name в методе. Итак, вариант:

$config['total_rows'] = $this->db->count_all('naphs_roles');

Был изменен на:

$config['total_rows'] = $this->db->count_all($table_name);

Где $ table_name - первый параметр в методе Model. Спасибо вам всем!

Другие вопросы по теме