CodeIgniter mempunyai class pagination untuk mengatasi hal tersebut dan penggunaannya pun juga sangat mudah. Untuk lebih jelasnya mari kita praktekkan saja.
Disini nanti kita akan buat sebuah controller dengan nama admin.php dan disimpan pada folder application/controllers. Masukkan code berikut ini kedalam file tersebut.
view plaincopy to clipboardprint?
<?php
class admin extends Controller {
function admin()
{
parent::Controller();
$this->load->model('admin_model');
}
function artikel() {
$data=$this->admin_model->artikel();
$this->load->view('mypaging',$data);
}
}
?>
Kemudian buatlah file admin_model.php dan simpan ke dalam folder application/models kemudian masukkan code berikut ini :
view plaincopy to clipboardprint?
<?php
class admin_model extends Model{
function admin_model(){
parent::Model();
}
function artikel(){
$string_query = "select * from artikel order by artikelid";
$query = $this->db->query($string_query);
$config['base_url'] = base_url().'index.php/admin/artikel/';
$config['total_rows'] = $query->num_rows();
$config['per_page'] = '30';
$num = $config['per_page'];
$offset = $this->uri->segment(3);
$offset = ( ! is_numeric($offset) || $offset < 1) ? 0 : $offset;
if(emptyempty($offset))
{
$offset=0;
}
$this->pagination->initialize($config);
$data['query'] = $this->db->query($string_query." limit $offset,$num");
$data['base'] = $this->config->item('base_url');
return $data;
}
}
?>
Kemudian buatlah file mypaging.php dan simpan kedalam folder application/views. Masukkan code berikut ini ke dalam file tersebut.
view plaincopy to clipboardprint?
<html>
<head>
<title>My Paging</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Artikel ID</th>
<th>Judul</th>
<th>Date</th>
<th>Post by</th>
<th>View</th>
</tr>
</thead>
<tbody>
<?
foreach($query->result() as $row)
{
echo
"<tr>
<td>$row->artikelid</td>
<td>$row->title</td>
<td>$row->artikeldate</td>
<td>$row->postby</td>
<td>$row->view</td>
</tr>";
}
?>
</tbody>
</table>
<p align="center"><?=$this->pagination->create_links();?></p>
</body>
</html>
Tiga file sudah kita buat, selanjutnya akan saya jelaskan code-code pada masing-masing file tersebut. Di dalam controller admin.php tedapat constructor yang memanggil file admin_model.php. Dibawahnya lagi terdapat code berikut:
view plaincopy to clipboardprint?
function artikel() {
$data=$this->admin_model->artikel();
$this->load->view('mypaging',$data);
}
Fungsi artikel ini akan memanggil fungsi artikel() yang ada pada admin_model dan menyimpan return valuenya ke dalam variable $data. Setelah itu fungsi ini akan memanggil file mypaging.php yang ada di folder views dengan memberikan parameter $data.
Di dalam admin_model.php sendiri terdapat fungsi artikel. Di dalam fungsi ini kita akan melakukan query untuk mengambil data di table artikel. Berikut ini scriptnya:
view plaincopy to clipboardprint?
$string_query = "select * from artikel order by artikelid";
$query = $this->db->query($string_query);
Kita juga akan melakukan konfigurasi untuk paging yang kita buat.
$config['base_url'] = base_url().'index.php/admin/artikel/';
Script di atas digunakan untuk mengatur arah link dari paging yang kita buat.
$config['total_rows'] = $query->num_rows();
Script di atas digunakan untuk mengetahui total record dari query yang kita jalankan.
$config['per_page'] = '30';
Script di atas digunakan untuk mengatur jumlah baris yang akan di tampilkan dalam satu halaman.
Sekarang kita akan melihat script dalam file mypaging.php di folder view. Di situ terdapat script untuk menampilkan paging.
<?=$this->pagination->create_links();?>
Script ini akan membuat paging secara otomatis
0 comments
Post a Comment