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

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

Posting Komentar

Postingan populer dari blog ini

Cara Download Gratis Dari Situs Berbayar!

Cara Memasang Site Info Alexa (Rank) Di Blog