Pemahaman Paging Sederhana pada Web PHP
بسم الله الرحمن الرحيم
Assalamu 'Aalaikum Wr. Wb.,

Alhamdulillah, pada kesempatan ini saya mau berbagi tentang tutorial pemrograman PHP. Pada posting ini, saya akan sedikit menjelaskan bagaimana membuat paging sederhana pada PHP.
Paging atau pembagian halaman pada halaman web sangatlah penting, untuk membatasi data yang tampil. Karena data yang banyak, jika ditampilkan keseluruhan akan membuat user kesulitan dalam membaca data pada halaman web.
Jumlah data yang ada 10 record
Batas data yang tampil pada setiap halaman 3 record
Misalkan terdapat
data sepeti di bawah ini:
No
|
NIS
|
Nama
Siswa
|
1
|
001
|
Siswanto
|
2
|
002
|
Ana Az-Zahra
|
3
|
003
|
Wahyudi
|
4
|
004
|
Ahmad Khairul Insan
|
5
|
005
|
Deny
Riswan Kholid
|
6
|
006
|
Uswatun Hasanah
|
7
|
007
|
Muhammad Hamdan
Naima
|
8
|
008
|
Salim Zikri Robbi
|
9
|
009
|
Dedi
Fajrinnur
|
10
|
010
|
Nurillail
|
Akan ditampilkan
3 record dalam setiap halaman, maka secara logika halaman yang tampil ada 4
halaman, seperti rincian di bawah in:
Halaman
|
Data
yang tampil (record ke-)
|
Sintaks
Sql
|
1
|
1-3
|
SELECT *
FROM t_siswa LIMIT 0,3
|
2
|
4-6
|
SELECT * FROM t_siswa
LIMIT 3,3
|
3
|
7-9
|
SELECT *
FROM t_siswa LIMIT 6,3
|
4
|
10
|
SELECT * FROM t_siswa
LIMIT 9,3
|
Untuk menampilkan
data pada setiap halaman sesuai posisi data tampil dan sesuai batas data yang
ditampilkan, skrip php yang dapat digunakan adalah sebagai berikut:
$batas = 3;
$pg = isset($_GET['pg']) ?
$_GET['pg'] : null;
echo "<table width = '500'
style = 'border-collapse:collapse;border:1px solid;'>
<tr>
<th style = 'background:#94939d;border-bottom:2px solid
black'>Id</th >
<th style = 'background:#94939d;border-bottom:2px
solid black'>Catatan</th >
</tr>";
if (!isset($pg)) {
$postampil = 0;
$mysqlstr = "select * from t_cat_pengajian limit
$postampil,$batas";
}
else {
$postampil = ($pg*$batas)-$batas;
$mysqlstr = "select * from t_cat_pengajian limit
$postampil,$batas";
}
$mysqlq =
mysql_query($mysqlstr);
$baris = 1;
while ($adadata =
mysql_fetch_row($mysqlq)){
list($id_catatan,$catatan) = $adadata;
if (($baris % 2) == 0) {
$warna = '#6657f7';
$teks
= 'white';
}
else {
$warna = 'none';
$teks = 'none';
}
echo "<tr>
<td style =
'background:$warna;color:$teks;border-bottom:1px solid
black;text-align:center'>$id_catatan</td >
<td style = 'background:$warna;color:$teks;border-bottom:1px
solid black;text-align:justify'>$catatan</td >
</tr>
";
$baris = $baris +1;
}
echo "
<hr>
<hr>
";
Sedangkan untuk
membagi halaman secara otomatis berdasarkan jumlah data yang akan tampil pada
setiap halaman, dapat dilihat pada kode di bawah ini:
$posisi = 0;
$halaman = 0;
do {
$mysqlstr = "select * from t_cat_pengajian limit
$posisi,$batas";
$mysqlq = mysql_query($mysqlstr);
$adadata = mysql_fetch_row($mysqlq);
if ($adadata) {
$posisi = $posisi + $batas;
$halaman = $halaman +1;
if (!isset($pg) && ($halaman
== 1)){
echo
"<b>$halaman</b>";
}
elseif ($pg == $halaman) {
echo
"<b>$halaman</b>";
}
else {
echo "<a href='?pg=$halaman'>$halaman</a> ";
}
}
}while($adadata =
mysql_fetch_row($mysqlq));
Skrip lengkap dari paging cara
di atas adalah:
<?php
<?php
include_once('koneksi_db.php');
$batas = 3;
$pg = isset($_GET['pg']) ? $_GET['pg'] : null;
echo "<table width = '500' style = 'border-collapse:collapse;border:1px solid;'>
<tr>
<th style = 'background:#94939d;border-bottom:2px solid black'>Id</th >
<th style = 'background:#94939d;border-bottom:2px solid black'>Catatan</th >
</tr>";
if (!isset($pg)) {
$postampil = 0;
$mysqlstr = "select * from t_cat_pengajian limit $postampil,$batas";
}
else {
$postampil = ($pg*$batas)-$batas;
$mysqlstr = "select * from t_cat_pengajian limit $postampil,$batas";
}
$mysqlq = mysql_query($mysqlstr);
$baris = 1;
while ($adadata = mysql_fetch_row($mysqlq)){
list($id_catatan,$catatan) = $adadata;
if (($baris % 2) == 0) {
$warna = '#6657f7';
$teks = 'white';
}
else {
$warna = 'none';
$teks = 'none';
}
echo "<tr>
<td style = 'background:$warna;color:$teks;border-bottom:1px solid black;text-align:center'>$id_catatan</td >
<td style = 'background:$warna;color:$teks;border-bottom:1px solid black;text-align:justify'>$catatan</td >
</tr>
";
$baris = $baris +1;
}
echo "
<hr>
<hr>
";
$posisi = 0;
$halaman = 0;
do {
$mysqlstr = "select * from t_cat_pengajian limit $posisi,$batas";
$mysqlq = mysql_query($mysqlstr);
$adadata = mysql_fetch_row($mysqlq);
if ($adadata) {
$posisi = $posisi + $batas;
$halaman = $halaman +1;
if (!isset($pg) && ($halaman == 1)){
echo "<b>$halaman</b>";
}
elseif ($pg == $halaman) {
echo "<b>$halaman</b>";
}
else {
echo "<a href='?pg=$halaman'>$halaman</a> ";
}
}
}while($adadata = mysql_fetch_row($mysqlq));
?>
?>
Selain cara di atas, masih banyak teknik-teknik
paging, teknik di atas hanya teknik sederhana berdasarkan algoritma yang saya
pahami. Semoga bermanfaat bagi kita semua, aamiin ya Allah. Silahkan demonya download .
Mohon kritik dan saran dari pengunjung terhormat,
Wassalamu 'Alaikum Wr. Wb.,
Comments
Post a Comment
Selamat berkunjung di blog saya, terima kasih.