Berdasarkan sebuah request/permintaan melalui surel, seorang rekan saya menanyakan : dapatkah Paging/penomoran halaman dipermudah , dipersingkat, tanpa ribet koding namun juga tidak ribet memenuhi halaman jika halaman hingga ribuan. Sebenarnya paging/ pemberian nomor halaman pada PHP tergantung pada kebutuhan. Biasanya sesuatu yang lengkap akan membutuhkan penanganan yang lengkap juga. Begitu juga dengan paging. Namun kadang dengan analisa yang tepat, bisa juga didapatkan sesuatu yang simple dan enak, dan dapat memenuhi banyak kebutuhan. Berikut disini saya paparkan hasil analisa paging simple penomoran halaman sederhana namun cukup powerfull.
Paging ini dimulai dari penentuan jumlah item tiap halaman yang akan ditampilkan. Selanjutnya dilakukan penangkapan parameter page dari method GET. Dalam contoh, item per halaman ditampilkan 10.
$item_per_page = 10;
$page = isset($_GET['page']) ? $_GET['page'] : 1 ;
Notasi tersebut berarti $page adalah didapat dari jika $_GET[‘page’] ter-set. Namun jika tidak akan berisi value 1. Untuk menghindari penomoran melewati batas, seperti kurang dari satu atau berisi value kosong, maka hadang / filter dulu dengan
if( ( $page < 1) && (empty( $page ) ) ){
$page=1;
}
Untuk mendapatkan jumlah halaman berarti harus didapatkan lebih dulu jumlah item yang ada. Jumlah item yang ada didapat dari query SQL.
$sql = "select * from `table`";
$query = mysql_query( $sql );
$jumlah_data = mysql_num_rows($query);
$jumlah_hal = ceil( $jumlah_data/$item_per_page );
Selanjutnya filter juga agar page yang terdapat di method GET tidak lebih dari jumlah halaman.
if( $page>$jumlah_hal ){
$page=$jumlah_hal;
}
Kemudian kita dapat membuat sebuah variable $lanjut dan $sebelum dengan penentuan seperti ini:
$lanjut = $page + 1;
$sebelum = $page - 1;
Barulah kita membuat kata-kata seperti berikut dilengkapi dengan navigasi Paging:
Anda ada di halaman dari
<< < sebelumnya
||
selanjutnya > >>
Ke Halaman:
Tampilan sangat sederhana seperti berikut :
<< < sebelumnya || sesudahnya > >>
Ke Halaman
Sederhana bukan?
Secara lengkap Code akan dipaparkan dalam bentuk fungsi, sehingga untuk penomoran halaman tinggal memanggil melalui fungsi seperti demikian
$sql = "select * from table";
$item_per_page =10;
paging($sql, $item_per_page);
FUNGSI UTAMA PAGING SIMPLE
Fungsinya adalah sebagai berikut di bawah (saya beri nama dengan paging.php). Anda dapat kopikan fungsi ini ke dalam kode anda, dan anda panggil ketika anda akan memberikan penomoran halaman. Anda juga dapat melakukan modifikasi sendiri sesuka hati:
$jumlah_hal ){
$page=$jumlah_hal;
}
$lanjut = $page + 1;
$sebelum = $page - 1;
?>
Anda ada di halaman dari
<< < sebelumnya
||
selanjutnya > >>
Ke Halaman:
Selanjutnya contoh perhalamannya akan seperti berikut:
NIP | Nama | HONOR | Status Ambil |
---|---|---|---|
mf hanya komentar dikit dan ngasih masukan… yg diatas kurang koding nya dikit…
$page = isset($_GET[‘page’]) ? $_GET[‘page’] : 1 ;
tidak ada di contoh soal..
terimakasih…
Terimakasih masukannya, namun pada contoh diatas memang bagian :
sudah dimasukkan dalam script paging.php. Mohon koreksinya kembali. CMIIW 🙂
bagus nih gan trims nya …..
wew thnks ya,…
izin save page untuk referensi 😛
Tx 🙂
tapi stresss sangat nii senior
wowwww lh pokoknya 🙂
Mantap gan thanks banget kode.y AJIP..
Jadi simple bikin halaman webnya..
bagus nih trims
Sama sama mbak.. sekedar memcatat agar gak lupa 😀
trim’s banget infonya gan….
berkunjung ke blog ane
salam kenal
😀
Mantaab gan… tengkiyu..
terimakasih banyak, tulisan-tulisanya sangat bermanfaat sekali…
Masih gagal… lanjut ke sebelah… 🙂 sekedar ninggalin jejak 😀
Sesama keturunan Ngrambe wajib berteman.. 😀
Akhirnya aku sudah ketemu dengan om bimo walopun hanya ngangkring sebentar :v
tengkyu.. membantu sekali..
semoga bisa disebarkan lanjut ya 🙂
dihalaman tampilnya tambah ini broo kalo nggak nanti error pas dihalaman satu klik sebelumnya trus muncul error
$page = isset($_GET[‘page’]) ? $_GET[‘page’] : 1 ;
if( ( $page < 1) && (empty( $page ) ) ){
$page=1;
}
$item_per_page = 20;
paging( $sql,$item_per_page );
$batas = ($page – 1) * $item_per_page;
maaf atas keterlambatan jawaban, karena on project luar kota.
Mas, coba pastikan bahwa tag ini_set(‘register_globals’,’on’);
Gan itu $sql smuanya kurang ‘$sql_’ pas manggil functionya….btw thanks codingnya berguna bgt
Mas saya punya skrip untuk menampilkan data User seperti di bawah ini, kalo mau di kasih fungsi paging kaya di atas gimana ya caranya. Mohon bantuannya soalnya saya baru belajar.
<?php
echo "User
NoIDUsernameAksi”;
include “../config/koneksi.php”;
$tampil=mysql_query(“SELECT * FROM admin ORDER BY id_admin”);
$no=1;
while ($r=mysql_fetch_array($tampil)){
echo “$no
$r[id_admin]
$r[username]
Edit
Hapus
“;
$no++;
}
echo “”;
?>
work!!! makasih master….