Как показать продолжение нумерованных данных с нумерацией страниц - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь отобразить данные в упорядоченном списке с нумерацией страниц в 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']    = '<nav><ul class="pagination justify-content-center">';
        $config['full_tag_close']   = '</ul></nav>';

        $config['num_tag_open']     = '<li class="page-item"><span class="page-link">';
        $config['num_tag_close']    = '</span></li>';

        $config['cur_tag_open']     = '<li class="page-item active"><span class="page-link">';
        $config['cur_tag_close']    = '<span class="sr-only">(current)</span></span></li>';

        $config['next_tag_open']    = '<li class="page-item"><span class="page-link">';
        $config['next_tagl_close']  = '<span aria-hidden="true">&raquo;</span></span></li>';

        $config['prev_tag_open']    = '<li class="page-item"><span class="page-link">';
        $config['prev_tagl_close']  = '</span></li>';

        $config['first_tag_open']   = '<li class="page-item"><span class="page-link">';
        $config['first_tagl_close'] = '</span></li>';

        $config['last_tag_open']    = '<li class="page-item"><span class="page-link">';
        $config['last_tagl_close']  = '</span></li>';


        $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);
}

и это код модели:

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 ,reservasi.id_reservasi,DATE_FORMAT(reservasi.tanggal, "%d-%m-%Y") as tanggal, reservasi.acara, reservasi.waktu_mulai, reservasi.waktu_selesai, reservasi.keterangan, ruangan.nama_ruangan, user.nama, reservasi.organisasi, reservasi.notelp');
        $this->db->from('reservasi');
        $this->db->join('user', 'reservasi.id_user = user.id');
        $this->db->join('ruangan', 'reservasi.id_ruangan = ruangan.id_ruangan');
        $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;
    }

    public function get_total() 
    {
        return $this->db->count_all_results('reservasi');
    }

выход должен быть = первая страница: 1 2 3 4

затем на следующей странице: 5 6 7 8

1 Ответ

0 голосов
/ 17 мая 2019

Попробуйте установить row_number на $start+1 вместо 0 на модели, чтобы он не начинался с 0 снова на каждой запрошенной странице:

$query = $this->db->query('set @row_number = '.$start+1);
...