2015-04-25 2 views
3

Я хочу сделать разбиение на страницы с помощью codeigniter, но не работает успешно. в моей модели я использую как этотCodeigniter Pagination с использованием запроса в модели

function show_kegiatan($offset,$limit) { 
     $query= $this->db->query("SELECT kegiatan . * , lk . * , fakultas.* , count(kegiatan_review.reviews) AS 'Komentar', fakultas.* 
            FROM kegiatan 
            INNER JOIN lk ON lk.id_LK = kegiatan.id_LK 
            INNER JOIN fakultas on fakultas.id_fakultas = lk.id_fakultas 
            LEFT OUTER JOIN kegiatan_review ON kegiatan.id_kegiatan = kegiatan_review.id_kegiatan 
            GROUP BY kegiatan.id_kegiatan 
            ORDER BY kegiatan.tahun_periode DESC 
            limit $offset",$limit); 
     if ($query->num_rows() > 0) { 
      return $query->result(); 
     } 
    } 

В моем контроллере

public function kegiatan($offset=0) { 
      $data['user']=$this->m_login->get_user($this->session->userdata('sesi_admin'));   
      $jml = $this->db->get('kegiatan');   
      $config['base_url'] = base_url().'admin/kegiatan'; 

      $config['total_rows'] = $jml->num_rows(); 
      $config['per_page'] = 3; 
      $config['uri_segment'] = 3; 

      $config['full_tag_open'] = "<ul class='pagination pagination-sm' style='position:relative; top:-25px;'>"; 
      $config['full_tag_close'] ="</ul>"; 
      $config['num_tag_open'] = '<li>'; 
      $config['num_tag_close'] = '</li>'; 
      $config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>"; 
      $config['cur_tag_close'] = "<span class='sr-only'></span></a></li>"; 
      $config['next_tag_open'] = "<li>"; 
      $config['next_tagl_close'] = "</li>"; 
      $config['prev_tag_open'] = "<li>"; 
      $config['prev_tagl_close'] = "</li>"; 
      $config['first_tag_open'] = "<li>"; 
      $config['first_tagl_close'] = "</li>"; 
      $config['last_tag_open'] = "<li>"; 
      $config['last_tagl_close'] = "</li>"; 

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

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

      $data['kegiatan'] = $this->m_admin->show_kegiatan($config['per_page'], $offset); 

      $this->load->templateadmin('in/admin_kegiatan',$data); 
    } 

В моей продукции, Офсетная делает работу, но данные не работает успешно. Что не так с моей моделью?

ответ

1

Вы можете использовать $this->uri->segment(3) заменить ваш $offset

Пожалуйста, попробуйте этот пример, остальное вы должны изменить, чтобы соответствовать вашим потребностям ...

В ваша модель:

function show_kegiatan($perPage, $uri) { 
    $uri = ($uri == null || $uri==''?0:$uri);  
    $this->db->select('kegiatan.kolommu1,kegiatan.kolommu2,lk.kolommu1,lk.kolommu2')->from('kegiatan')->join('lk','lk.id_LK = kegiatan.id_LK')->order_by('kegiatan.id_kegiatan','desc')->limit($perPage,$uri); 
    $hasil = $this->db->get()->result_array();  
    return (sizeof($hasil) > 0?$hasil:null); 
} 

В вашем контроллере:

function kegiatan(){ 
    $jml = $this->db->get('kegiatan')->num_rows(); 

    $config['full_tag_open'] = "<ul class='pagination pagination-sm' style='position:relative; top:-25px;'>"; 
    $config['full_tag_close'] ="</ul>"; 
    $config['num_tag_open'] = '<li>'; 
    $config['num_tag_close'] = '</li>'; 
    $config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>"; 
    $config['cur_tag_close'] = "<span class='sr-only'></span></a></li>"; 
    $config['next_tag_open'] = "<li>"; 
    $config['next_tagl_close'] = "</li>"; 
    $config['prev_tag_open'] = "<li>"; 
    $config['prev_tagl_close'] = "</li>"; 
    $config['first_tag_open'] = "<li>"; 
    $config['first_tagl_close'] = "</li>"; 
    $config['last_tag_open'] = "<li>"; 
    $config['last_tagl_close'] = "</li>"; 

    $config['base_url'] = site_url('admin/kegiatan'); 
    $config['total_rows'] = $jml; 
    $config['per_page'] = 3; 
    $config['uri_segment'] = 3; 
    $config['first_link'] = 'Awal'; 
    $config['last_link'] = 'Akhir'; 
    $config['next_link'] = 'Selanjutnya'; 
    $config['prev_link'] = 'Sebelumnya'; 

    $this->pagination->initialize($config); 
    $data['kegiatan'] = $this->m_admin->show_kegiatan($config['per_page'], $this->uri->segment(3)); 

    $data['halaman'] = $this->pagination->create_links(); 
    $this->load->view('layout/admin/v_dashboard',$data); 

    $this->load->templateadmin('in/admin_kegiatan',$data); 
} 
Смежные вопросы