Untuk membuat contoh Pagination, kita buat dulu tabel pagination misalnya
create table pagination(
NoID int,
IsiNo varchar(20)
);
Kemudian kita isi tabelnya seperti berikut :
INSERT INTO pagination VALUES(1,'Data ke satu');
INSERT INTO pagination VALUES(2,'Data ke dua');
INSERT INTO pagination VALUES(3,'Data ke tiga');
INSERT INTO pagination VALUES(4,'Data ke empat');
INSERT INTO pagination VALUES(5,'Data ke lima');
INSERT INTO pagination VALUES(6,'Data ke enam');
INSERT INTO pagination VALUES(7,'Data ke tujuh');
INSERT INTO pagination VALUES(8,'Data ke delapan');
INSERT INTO pagination VALUES(9,'Data ke sembilan');
INSERT INTO pagination VALUES(10,'Data ke sepuluh');
INSERT INTO pagination VALUES(11,'Data ke sebelas');
INSERT INTO pagination VALUES(12,'Data ke duabelas');
INSERT INTO pagination VALUES(13,'Data ke tigabelas');
INSERT INTO pagination VALUES(14,'Data ke empatbelas');
INSERT INTO pagination VALUES(15,'Data ke limabelas');
Sekarang kita buat Model,Controller, dan Views-nya
MODEL
Model digunakan untuk mengambil data dari database.
Buatlah sebuah file dengan nama mpagination.php dan simpan di folder
application/models/
Isi dari mpagination.php adalah sebagai berikut :
<?
class Mpagination extends Model {
function Mpagination(){
parent::Model();
}
function AmbilData($num, $offset) {
$query = $this->db->get('pagination', $num, $offset);
return $query;
}
}
?>
CONTROLLER
Buatlah sebuah file dengan nama pagination.php dan simpan di folder
application/controllers/
Isi dari pagination.php adalah sebagai berikut :
<?
class Pagination extends Controller {
function __construct() {
parent::Controller();
$this->load->helper('url');
$this->load->database();
}
function index() {
//load pagination class
$this->load->library('pagination');
// Pengaturan konfigurasi untuk pagination
$config['base_url'] = base_url().'index.php/pagination/index/';
$config['total_rows'] = $this->db->count_all('pagination');
$config['per_page'] = '4';
$config['first_link'] = 'Awal';
$config['last_link'] = 'Akhir';
$config['next_link'] = 'Selanjutnya';
$config['prev_link'] = 'Sebelumnya';
$this->pagination->initialize($config);
//load model and ambil hasilnya
$this->load->model('Mpagination');
$data['hasil'] = $this->Mpagination->AmbilData($config['per_page'],$this->uri->segment(3));
// load the HTML Table Class
$this->load->library('table');
$this->table->set_heading('NoID', 'IsiNo');
// load the view
$this->load->view('v_pagination', $data);
}
}
?>
VIEWS
Buatlah sebuah file dengan nama v_pagination.php dan simpan di folder
application/views/
Isi dari v_pagination.php adalah sebagai berikut :
<html>
<head>
<title>Membuat Pagination</title>
</head>
<body>
<h1>Membuat Pagination</h1>
<? echo $this->table->generate($hasil); ?>
<? echo $this->pagination->create_links(); ?>
</body>
</html>
Untuk lebih jelasnya silahkan lihat CodeIgniter User Guide tentang Pagination Class
Comments
Artikel di atas, gagal....Error..mohon bantuannya
Maaf, mungkin ada kesalahan di saya, ketika saya run..muncul pesan seperti di bawah ini
Severity: NoticeMessage: Undefined property: CI_Loader::$table
Juga ada pesan error seperti ini
Call to a member function generate() on a non-object in...,kira-kira salah dimana ya saya? mohon bimbingannya...
salam,
pemula...
Regards,
HardyBoyz
Saya sudah berhasil menampilkan paging cuma
Saya sudah berhasil menampilkan paging cuma apakah urutan dan layoutnya bisa kita atur, karena saya bingung ngatur urutannya field2 misalkan noid jadi di belakang dan isi datan di depannya
Re : Saya sudah berhasil menampilkan paging cuma ..
Coba lihat baris berikut pada controllernya:
//load model and ambil hasilnya
$this->load->model('Mpagination');
$data['hasil'] = $this->Mpagination->AmbilData($config['per_page'],$this->uri->segment(3));
baris di atas adalah proses pengambilan data dari database menggunakan fungsi AmbilData pada model Mpagination.
Sekarang kita lihat fungsi AmbilData
function AmbilData($num, $offset) {$query = $this->db->get('pagination', $num, $offset);
return $query;
}
Fungsi di atas adalah mengambil data dari table "pagination" sesuai dengan urutan field yang ada ditable. Seperti perintah :
SELECT * FROM pagination;Jika urutannya ingin diubah silahkan ubah proses pengambilan datanya :
function AmbilData($num, $offset) {
$this->db->select('IsiNo, NoID');
$query = $this->db->get('pagination', $num, $offset);
return $query;
}
Selamat Mencoba.
kalau nama Databasenya apa?
nama databasenya apa?
trus sintak ini
$query = $this->db->get('pagination', $num, $offset);
maksudnya apa? pagination ini nama database atau nama tabel?
contoh diatas menggunakan mysql atau postgres?
terima kasih
Re : kalau nama Databasenya apa?
Nama databasenya terserah, mau pakai nama apa saja.
Sebelum mencoba pagination ini, buatlah sebuah database dan user untuk mengakses database tersebut (kebetulan untuk contoh di atas, saya menggunakan MySQL).
Jangan lupa untuk mengatur konfigurasi database.php di /system/application/config
Setelah buat databasenya, baru buat table dengan nama table-nya : pagination (bisa dilihat contoh di atas)
Untuk sintaks
$query = $this->db->get('pagination', $num, $offset);
pagination = nama tabelnya
$num = limitnya
$offset = mulainya
Berikut ini keterangan dari User_Guide-nya CI di
Database Class -> Active Record Class -> Selecting Data
The second and third parameters enable you do set a limit and offset clause:
$query = $this->db->get('mytable', 10, 20);
// Produces: SELECT * FROM mytable LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)
Demikian dari saya, mudah-mudahan bermanfaat.
pencerahan
mas kenapa ya ko tampilanya g muncul blank putih gt aza aku pake database postgres, tapi kalau pake mysql berhasil tampil pagination nya knp ya mas mohon bantuanya sdh 3 hr ni ngoprek tp blm bs jg
bls:
di system/application/config/database.php udah disetting database drivernya postgre blom??
kalo blom coba ganti menjadi
$db['default']['dbdriver'] = "postgre";
semoga membantu..
regards,
Syamsul Bachri
IT Beginner
Computer Science, Bogor Agricultural University
http://syamsulbachri.co.cc
Pencerahan
Wah, maaf sekali saya belum pernah pakai postgres.
Mungkin dari rekan-rekan lain ada yang tau?
Apakah di postgress ada sintaks LIMIT untuk membatasi apa yang kita lihat dengan perintah SELECT ?
Terima kasih,
Chandra
pgsql ada limit nya
http://www.postgresql.org/docs/8.1/static/queries-limit.html