Я создаю сайт для опросов с использованием фреймворка Codeigniter PHP. Но в данный момент я застрял, так как не могу понять, где в скрипте обнаружена ошибка.
Веб-сайт имеет административную сторону, где мне нужно составлять таблицы и разбивать на страницы записи, которые я буду извлекать из таблиц базы данных, поэтому я создал метод Model для извлечения записей и разбивки их на страницы. Но, похоже, есть проблемы, поскольку некоторые записи вообще не отображаются, даже если отображаются мои ссылки на страницы.
Вот мой код:
## 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 ... и т. Д.
При необходимости мои скриншоты будут размещены здесь. Спасибо!