Paging Halaman Menggunakan PHP

Artikel kali ini akan membahas bagaimana caranya untuk paging halaman menggunakan PHP. Jika anda pernah membuat aplikasi dengan menggunakan php maka anda mungkin pernah menampilkan data news atau produk dalam halaman, jika jumlah news atau product yang ditampilkan puluhan atau bahkan ratusan maka jika ditampilkan hanya dalam satu halaman akan menyulitkan user dalam melihat atau mencari data yang diinginkan.

Solusi yang dapat digunakan untuk menyelesaikan masalah ini adalah dengan menggunakan paging, dengan paging maka anda dapat menampilkan content per jumlah yang anda inginkan (tidak harus semua content ditampilkan). Misal dalam aplikasi contoh yang saya buat akan ditampilkan berita yang diambil dari tabel berita didatabase, berita tersebut akan ditampilkan per 3 berita dalam satu halaman. Adapu kode lengkapnya sebagai berikut:

Pertama buat variabel halaman yang akan menampung nilai halaman ke berapa yang akan ditampilkan

$hal = $_GET[hal];

if(!isset($_GET['hal'])){ 
    $page = 1; 
} else { 
    $page = $_GET['hal']; 
} 

Setelah itu buat variabel untuk menentukan jumlah item yang akan ditampilkan per-page. Variabel page digunakan untuk mengetahui batas awal dari record yang akan ditampilkan dari database.

$max_results = 3; 
$from = (($page * $max_results) - $max_results);  
 
Buat SQL-nya, perhatikan bahwa saya menggunakan perintah LIMIT untuk membatasi hasil keluaran dari query-nya sesuai dengan jumlah halaman yang diinginkan
 
$sql = "select id_berita,judul_berita,detail_berita,tanggal from berita ORDER BY id_berita DESC LIMIT $from, $max_results";
$result = mysql_query($sql);

Kemudian buat kode untuk menampilkan record-recordnya:

<h3>Hot News</h3><br />
<?
    while($row=mysql_fetch_array($result,MYSQL_NUM))
    {
?>
<table border="0">
  <tr>
    <td><strong><?=$row[1]?></strong><br /><hr /></td>
  </tr>
  <tr>
    <td>
    <?=substr($row[2],0,150)?>.....<a href="frmDetailBerita.php?id_berita=&lt;?=$row[0]?>&hal=<?=$page?>">detail</a>
   </td>
  </tr>
   <tr>
    <td>Post Date : <strong><?=$row[3]?></strong></td>
  </tr>
</table><br />
<?
    }
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM berita"),0); 

$total_pages = ceil($total_results / $max_results); 

echo "<center>Select a Page<br />"; 

if($hal > 1){ 
    $prev = ($page - 1); 
    echo "<a href=$_SERVER[PHP_SELF]?hal=$prev> <-Previous &lt;/a> "; 
} 
for($i = 1; $i <= $total_pages; $i++){ 
    if(($hal) == $i){ 
        echo "$i "; 
        } else { 
            echo "<a href=$_SERVER[PHP_SELF]?hal=$i>$i</a> "; 
    } 
} 
// Build Next Link 
if($hal < $total_pages){ 
    $next = ($page + 1); 
    echo "<a href=$_SERVER[PHP_SELF]?hal=$next>Next-></a>"; 
} 

Variabel total_result digunakan untuk menampung nilai perhitungan total record yang diperoleh dari query.

Variabel total_pages digunakan untuk menghitung total halaman.

Variabel next dan prev digunakan untuk navigasi record sebelum dan sesudah, ketika link next atau prev diklik maka secara otomatis halaman ini akan dipanggil kembali dengan menambahkan parameter berupa halaman yang akan ditampilkan.

Selamat mencoba kodenya yaa, cu in next article ciaaaooo..

7 thoughts on “Paging Halaman Menggunakan PHP

  1. mas q agak kesulitan dlm pagingnya coz produk hp yang ditampilkan itu bisa di arrange by seacrh, kategori (3g, cdma, gsm) trus bisa juga di arrange by merk. solusinya gmana donk??? bantu yah plizzzz……

  2. mas, mau nanya kalau saya pakai postgresql cara mengganti ….limit $from, $max_result;” nya gmana ya mas?,,
    Makasih banyak mas…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s