Author: RIAL
Level : Easy
Sebenarnya saya cukup bingung untuk memberi judul
pada artikel kali ini. Contoh kasus dalam hal ini adalah ketika kamu membuat
sebuah guestbook yang jumlah tampilan
data record-nya dibatasi per halaman
(paging / pagination).
Dalam hal ini
maksud saya adalah jika kamu membuat halaman guestbook dengan query “SELECT * FROM guestbook
ORDER BY guestbook_id DESC LIMIT $offset, $perpage”
Dimana maksud
dari query diatas adalah memanggil
tabel guestbook pada database dengan diurut tampilannya
secara descending dengan dibatasi
banyaknya data yang ditampilkan tergantung dari variable $perpage.
Kemudian kasus
pendukung selanjutnya dari query
diatas adalah dengan syntax perulangan
(while) untuk menampilkan datanya di
halaman guestbook dengan script
:
while ($DataPerRecord=MySQL_Fetch_Array(“SELECT *
FROM guestbook ORDER BY guestbook_id DESC LIMIT $offset, $perpage”)){
echo “<p>” .
nl2br(htmlSpecialChars($DataPerRecord[‘message_guestbook’] . “</p>”;
}
Kemudian
kasus pendukung selanjutnya adalah ketika pada halaman guestbook kamu memiliki tombol / link menuju halaman selanjutnya
dari halaman guestbook dimana jumlah
tombol / link tergantung dari banyaknya record
data pada table guestbook (Contoh: <<Prev
1,2,3,4,5 Next>>). Dimana stuktur url dari tombol / link tersebut
seperti http://NamaWebsite.com/guestbook.php?page=2 (ini misalkan tombol / link
nomor 2 diklik).
Nah, maksud dari artikel
ini adalah jika kamu mempunyai halaman guestbook
dengan batas tampilan data per record-nya
adalah 5 record data dengan contoh
kasus adalah ketika pada halaman guestbook
di page pertama (belum di-set, http://NamaWebsite.com/guestbook.php)
kamu ingin menampilkan nomor urut per
record data pada setiap page. Misal pada page pertama nomor urutnya 1 – 5 kemudian page kedua 6 – 10, kemudian pada page ketiga 11-15, dst. Maka kamu tidak perlu membuat Nested Loop. Kamu cukup menambahkan
script berikut (dicetak tebal) dari contoh syntax:
<?
$perpage=5;
if (isset($_GET['page'])){
$nopage=$_GET['page'];
}else{
$nopage=1;
}
$offset=($nopage - 1) * $perpage;
$query=MySQL_QUERY (”SELECT * FROM guestbook ORDER
BY guestbook_id DESC LIMIT $offset, $perpage”);
if
(isset($_GET['page'])){
$i=$perpage * $_GET['page'] - 4;
}else{
$i=1;
}
while ($DataPerRecord=MySQL_Fetch_Array(“SELECT *
FROM guestbook ORDER BY guestbook_id DESC LIMIT $offset, $perpage”)){
echo “Nomor:“
. $i;
echo “<p>” .
nl2br(htmlSpecialChars($DataPerRecord[‘message_guestbook’] . “</p>”;
$i++;
}
(script paging disini)
?>
Dan logika
a.k.a penalaran dari script yang dicetak tebal diatas adalah jika pada halaman
guestbook nilai page belum di-set (contoh: http://NamaWebsite.com/guestbook.php).
Maka nilai dari nomor halamannya diberi nilai 1 (variable $i, lihat pada else)
kemudian script $i++ memberi nilai penambahan satu dari setiap record yang
diulang penampilan datanya.
Dan jika nilai page sudah di-set, misal URL-nya
menjadi http://NamaWebsite.com/guestbook.php?page=2 (variabel GET page
mempunyai nilai 2). Maka nilai dari nomor halamanya (variable $i) mendapat
nilai 6 kemudian script $i++ memberi nilai penambahan satu dari setiap record
yang diulang penampilan datanya.
Penjelasan dari setiap scriptnya per line adalah sebagai berikut:
if (isset($_GET['page'])){
//=>Jika ada set pada page atau jika nilai
dari varibale get dapat diambil nilainya meski bernilai null, maka.
$i=$perpage *
$_GET['page'] - 4;
//=>Kemudian Variable $i diberi perhitungan
jumlah data yang ditampilkan dikali nilai variable GET page dikurang 4 (nilai 4
ditentukan dari hasil nilai varible $perpage dikurang 1. (jadi jika variabel
$perpage-nya memiliki nilai 10, maka angka 4 harus diganti dengan 9).
}else{
//=>Jika tidak ada set pada page atau jika
varibale get tidak terdapat pada URL (yang berarti itu adalah page 1).
$i=1;
//=>Variabel $i diberi nilai 1 (jika kondisi else dijalankan).
echo “Nomor:“ . $i;
//=>Menampilkan string Nomor dan nilai dari variabel $i (nilai dari
variabel $i didapat dari if atau else (tergantung kondisi) dan kemudian
nilainya didapat dari penambahan nilai 1 pada script $i++).
$i++;
//=>Penambahan nilai 1 dari setiap perulangan hingga syarat pada
perulangan terpenuhi.
Gambaran perhitungannya sebagai berikut:
- Misal url-nya http://NamaWebsite.com/guestbook.php?page=2
if (isset($_GET['page'])){ //syarat terpenuhi (variabel
GET page mendapat nilai 2) kemudian:
$i= 5 * 2 - 4; //hasilnya adalah 6, kemudian ditampilkan dan ditambah 1.
}else{ //kondisi else tidak dijalankan
$i=1; //perintah pada else diabaikan.
}
Catatan:
* Untuk memahami artikel dari syntax-syntax diatas, paling tidak kamu sudah
paham tentang teknik paging atau pagination dan paham tentang stuktur URL
pada website dinamis serta funsi-fungsi php yang berhubungan dengan struktur
URL (dalam kasus ini adalah fungsi GET).
Kok tidak ada screenshotnya yah... ?
BalasHapusberbagi itu lebih baik . alhamdulillah bertemu web ini .
BalasHapustrimakasih
bravo untuk anda yang mengelola site ini .
sukses yah semoga bisa menjadi inspirasi untuk yg lain..