Selasa, 15 Maret 2011

Paging halaman dengan PHP

Sudah satu bulan penuh saya tidak mengupdate blog ini. untuk mengupdatenya saya menambah judul baru dalam blog ini, yaitu tentang paging halaman. untuk masalah paging, saya juga masih dalam tahap belajar dan beberapa trik dan teknik yang akan saya posting dalam blog ini juga saya ambil dari beberapa referensi buku dan juga beberapa hal yang saya pelajari sendiri. semoga saja bisa bermanfaat buat kalian semua....

Paging juga dikenal dengan sebutan pagination (paginate), previous-next, tampilan per halaman, page navigator, halaman 1..2..3, dst. Apapun namanya, intinya paging merupakan suatu teknik untuk membatasi data yang akan ditampilkan dalam suatu halaman web. Biasanya paging digunakan untuk menampilkan data yang banyak dan hampir di setiap aplikasi web “si paging” selalu ada, namun jenisnya berbeda-beda. Salah satu teknik paging yang efektif dan efisien dapat kita jumpai di Google.

Paging ala Google hanya menampilkan beberapa paging saja, misalkan hanya 1 2 3 4 5 6 7. Sedangkan paging berikutnya akan tampil apabila di klik halaman berikutnya, yaitu halaman 2, maka tampilan pagingnya akan menjadi 2 3 4 5 6 7 8, dan begitu seterusnya.

Masalahnya bagaimana membuat paging dengan php...? jawabannya.., jelas ada donk, buat kalian semua yang mencari script paging halaman, gak usah khawatir karena saya akan menyajikan semuanya dengan langkah - langkah yang sangat mudah, tidak membuat kalian pusing pokoknya dech....

Berikut adalah langkah - langkahnya :

Langkah 1 (pertama)
Kita harus membuat databasenya terlebih dulu dengan nama mvc
setelah database tercipta kita buat tabel dengan nama apl_barang field : kode_barang dan nama_barang.
setelah database dan tabel sudah dibuat kita buat script php'nya adalah sebagai berikut :
kita membuat seting koneksi mysql dan databasesnya.
<?php 
///////////////////////////////////////////////////////////////////
////////////////////SETTING KONEKSI KE MYSQL & DB//////////////////
///////////////////////////////////////////////////////////////////
$dbhost = "localhost";
$dbuser = "root";
$dbpassword = "";
$dbname = "mvc";

$kon = mysql_connect("$dbhost","$dbuser","$dbpassword");
if($kon){
 //echo" sukses mysql konek ";
}
if(!$kon){
 echo" not sukses mysql konek ";
}
$kon = mysql_select_db("$dbname");
if($kon){
 //echo" sukses db konek ";
}
if(!$kon){
 echo" not sukses mysql konek ";
}
?>

Langkah 2 (Kedua)
membuat form untuk pemilihan jumlah paging yang ditentukan perjumlah data yang akan di tampilkan pada setiap halaman, dan mendapatkan batas, posisi guna untuk LIMIT pada peritah SQL'nya.
<form name="form_tr" action="" method="POST">
<?php
///////////////////////////////////////////////////////////////////
////////////////////GET BATAS, POSISI, DAN HALAMAN/////////////////
///////////////////////////////////////////////////////////////////
 $batasan = 2;
 if(isset($_POST["batas"])){ 
  $batas = $_POST["batas"];
 }
 else if(isset($_GET["batas"])){ 
  $batas = $_GET["batas"]; 
 }
 else{
  $batas = $batasan; 
 }
 if(isset($_POST["halaman"])){ 
  $halaman = $_POST["halaman"];
 }
 else{ $halaman = $_GET["halaman"]; }
 if(empty($halaman)){
  $posisi = 0;
  $halaman = 1;
 }
 else{
  $posisi = intval(($halaman-1) * $batas);
 }
?>
<input type="hidden" name="halaman" value="<?=$halaman;?>" />
Tentukan tampilan data perhalaman :
<select name="batas" onchange="this.form.submit()" class="highlight">
 <?php
  for($i=1; $i<=50; $i++)
  {
   $angka=$batasan*$i;
   echo"<option value=$i";
   if($batas==$i)
    echo"<option value=$i selected>$i</option>";
   else
    echo"<option value=$i>$i</option>";
  }
 ?>
 </select>
<?php
 if(empty($batas))
 {
  $batas = intval($batasan);
  //echo"Batas = $batas";
 }
 else
 {
  $batas=intval($batas);
  //echo"Batas = $batas";
 }
?>

Langkah 3 (Ketiga)
Sekarang kita akan menerapkan dengan perintah SQL, di bawah ini adalah script yang akan mengolah data dari barisan pertama hingga baris terakhir melalui LIMIT pada perintah SQL dengan nilai $posisi : yang nilainya akan berubah - ubah dan $batas : juga nilainya akan berubah - ubah, nilai variabel $posisi dan $batas di dapatkan dari langkah 2 (kedua).
<?php
/////////////////////////////////////////////////////////////
//////////MENERAPKAN PAGING PADA RELASI TABEL SQL////////////
/////////////////////////////////////////////////////////////
$aa = mysql_query("select*from apl_barang order by kode_barang desc LIMIT $posisi,$batas;");
?>
<table width="100%" border="1">
  <tr>
    <td>No</td>
    <td>Nama Barang</td>
  </tr>
<?
$no=$posisi+1;
while($data=mysql_fetch_array($aa))
{
?>
  <tr>
    <td><?php echo $no;?></td>
    <td><?php echo $data["nama_barang"];?></td>
  </tr>
<?php
$no++;
}
?>
</table>
<?php

Langkah 4 (Keempat)
ini tahap terakhir, dengan mengetahui jumlah data pada tabel barang melalui perintah SQL, maka kita dapat mengetahui berapa jumlah datanya dan setiap paging 1 2 3 dan seterusnya..., dapat bergerak secara dinamis mengikuti jumlah data dari tabel barang.
/////////////////////////////////////////////////////////////////////////
////////////////////TAHAP TERAKHIR PAGING HALAMAN////////////////////////
/////////////////////////////////////////////////////////////////////////
echo"<div align=\"center\">";
 $tampil2 = mysql_query("select * from apl_barang order by kode_barang desc");
 $jmldata = mysql_num_rows($tampil2);
 $jmlhalaman = ceil($jmldata/$batas);
 if($halaman > 1){
  $previous=$halaman-1;
  echo"<a href=?halaman=1&batas=$batas class=linka> << First</a> | <a href=?halaman=$previous&batas=$batas class=linka> < Previous</a> | ";
 }
 else{
  echo"<< First | < Previous | ";
 }
 $angka=($halaman > 3 ? " ... " : " ");
 for($i=$halaman-2;$i<$halaman;$i++){
  if($i < 1)
   continue;
  $angka .= "<a href=?halaman=$i&batas=$batas class=linka>$i</a> ";
 }
 $angka .= " <b>$halaman</b> ";
 for($i=$halaman+1;$i<($halaman+3);$i++){
  if($i > $jmlhalaman)
   break;
  $angka .= "<a href=?halaman=$i&batas=$batas class=linka>$i</a> ";
 }
 $angka .= ($halaman+2<$jmlhalaman ? " ... <a href=?halaman=$jmlhalaman&batas=$batas class=linka>$jmlhalaman</a> " : " ");
 echo"$angka";
 if($halaman < $jmlhalaman){
  $next=$halaman+1;
  echo"<a href=?halaman=$next&batas=$batas class=linka> Next > </a> | <a href=?halaman=$jmlhalaman&batas=$batas class=linka> Last >> </a> ";
 }
 else{
  echo"Next > | Last >>";
 }
 echo"<br /><br />Total Data : <b>$jmldata</b> Data";
echo"</div>";
?>
</form>

SUKSES...!!! SELAMAT BUAT KALIAN yang sudah berhasil membuat paging halaman dengan php,...salam SEMANGAT. . . . . .

1 komentar:

Hendri Priatna mengatakan...

mksh bro script nya.
sngt membantu.
thnx.....

Posting Komentar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Justin Bieber, Gold Price in India