Anonymous
Как показать непрерывную нумерацию данных с нумерацией страниц
Сообщение
Anonymous » 08 янв 2026, 01:20
Я пытаюсь отобразить данные в упорядоченном списке с нумерацией страниц в codeigniter. Нумерация работает нормально на первой странице с номером 1 до предела, но на следующей странице обратный отсчет начинается с 1, а не продолжается с предыдущей страницы.
вот код контроллера:
Код: Выделить всё
public function index()
{
// init params
$params = array();
$limit_per_page = 2;
$start_index = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$total_records = $this->model_pesan->get_total();
$data['setting'] = $this->setting_model->get_file();
if ($total_records > 0)
{
// get current page records
$params["results"] = $this->model_pesan->get_current_page_records($limit_per_page, $start_index);
$params["ruangan"] = $this->ruangan_model->get_file();
$config['base_url'] = base_url() . 'home/index';
$config['total_rows'] = $total_records;
$config['per_page'] = $limit_per_page;
$config["uri_segment"] = 3;
$config['full_tag_open'] = '[list]';
$config['full_tag_close'] = '[/list]';
$config['num_tag_open'] = '[*]';
$config['num_tag_close'] = '';
$config['cur_tag_open'] = '[*]';
$config['cur_tag_close'] = '(current)';
$config['next_tag_open'] = '[*]';
$config['next_tagl_close'] = '»';
$config['prev_tag_open'] = '[*]';
$config['prev_tagl_close'] = '';
$config['first_tag_open'] = '[*]';
$config['first_tagl_close'] = '';
$config['last_tag_open'] = '[*]';
$config['last_tagl_close'] = '';
$this->pagination->initialize($config);
// build paging links
$params["links"] = $this->pagination->create_links();
}
$this->load->view('template/header_user', $data);
$this->load->view('user/home', $params);
$this->load->view('template/footer_user', $data);
}
и это код модели:[/b]
public function get_current_page_records($limit, $start)
{
$query = $this->db->query('set @row_number = 0');
$this->db->select('(@row_number:=@row_number + 1) as num , резервирование.id_reservation,DATE_FORMAT(reservation.date, "%d-%m-%Y") как дата, резервирование.событие, резервирование.начало_время, резервирование.конечное_время, резервирование.информация, комната.имя_комнаты, пользователь.имя, резервирование.организация, резервирование.нотелп');
$this->db->from('reservation');
$this->db->join('user', 'reservation.id_user = user.id');
$this->db->join('room', 'reservation.id_room = room.id_room');
$this->db->limit($limit, $start);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data[] = $row;
return $data;
return false;
публичная функция get_total()
{
return $this->db->count_all_results('reservation');
/>
выход должен быть =
первая страница:
1
2
3
4
затем на следующей странице:
5
6
7
8
Подробнее здесь:
https://stackoverflow.com/questions/561 ... pagination
1767824407
Anonymous
Я пытаюсь отобразить данные в упорядоченном списке с нумерацией страниц в codeigniter. Нумерация работает нормально на первой странице с номером 1 до предела, но на следующей странице обратный отсчет начинается с 1, а не продолжается с предыдущей страницы.[b] вот код контроллера:[/b][b] [code] public function index() { // init params $params = array(); $limit_per_page = 2; $start_index = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; $total_records = $this->model_pesan->get_total(); $data['setting'] = $this->setting_model->get_file(); if ($total_records > 0) { // get current page records $params["results"] = $this->model_pesan->get_current_page_records($limit_per_page, $start_index); $params["ruangan"] = $this->ruangan_model->get_file(); $config['base_url'] = base_url() . 'home/index'; $config['total_rows'] = $total_records; $config['per_page'] = $limit_per_page; $config["uri_segment"] = 3; $config['full_tag_open'] = '[list]'; $config['full_tag_close'] = '[/list]'; $config['num_tag_open'] = '[*]'; $config['num_tag_close'] = ''; $config['cur_tag_open'] = '[*]'; $config['cur_tag_close'] = '(current)'; $config['next_tag_open'] = '[*]'; $config['next_tagl_close'] = '»'; $config['prev_tag_open'] = '[*]'; $config['prev_tagl_close'] = ''; $config['first_tag_open'] = '[*]'; $config['first_tagl_close'] = ''; $config['last_tag_open'] = '[*]'; $config['last_tagl_close'] = ''; $this->pagination->initialize($config); // build paging links $params["links"] = $this->pagination->create_links(); } $this->load->view('template/header_user', $data); $this->load->view('user/home', $params); $this->load->view('template/footer_user', $data); } [/code] и это код модели:[/b][b] public function get_current_page_records($limit, $start) { $query = $this->db->query('set @row_number = 0'); $this->db->select('(@row_number:=@row_number + 1) as num , резервирование.id_reservation,DATE_FORMAT(reservation.date, "%d-%m-%Y") как дата, резервирование.событие, резервирование.начало_время, резервирование.конечное_время, резервирование.информация, комната.имя_комнаты, пользователь.имя, резервирование.организация, резервирование.нотелп'); $this->db->from('reservation'); $this->db->join('user', 'reservation.id_user = user.id'); $this->db->join('room', 'reservation.id_room = room.id_room'); $this->db->limit($limit, $start); $query = $this->db->get(); if ($query->num_rows() > 0) { foreach ($query->result() as $row) { $data[] = $row; return $data; return false; публичная функция get_total() { return $this->db->count_all_results('reservation'); /> выход должен быть = первая страница: 1 2 3 4 затем на следующей странице: 5 6 7 8[/b] Подробнее здесь: [url]https://stackoverflow.com/questions/56164104/how-to-show-continued-numbered-of-data-with-pagination[/url]