Senin, 02 Juli 2012

[PHP] Cara Menampilkan Nomor Record Data Perulangan Pada Guestbook


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).

2 komentar:

  1. Kok tidak ada screenshotnya yah... ?

    BalasHapus
  2. berbagi itu lebih baik . alhamdulillah bertemu web ini .
    trimakasih
    bravo untuk anda yang mengelola site ini .
    sukses yah semoga bisa menjadi inspirasi untuk yg lain..

    BalasHapus