Kamis, 17 Maret 2011

Paging halaman dengan PHP menggunakan array

Pada pembahasan sebelumnya saya telah menulis teknik paging untuk menampilkan data dari tabel MySQL menggunakan LIMIT. sekarang saya akan memberikan tehnik paging menggunakan Array pada PHP.

Berikut adalah tehnik paging menggunakan array

Langkah 1 (pertama)

Kita membuta array terlebih dahulu
<?php
$link = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18");
$link2 = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18");
?>

Langkah 2 (kedua)

Membuat form untuk menampilkan berapa data yang akan ditampilkan dalam satu halaman.
<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";
 }
?>
<?php

Langkah 3 (ketiga)

Setelah langkah 2 kita lanjutkan langkah ke 3, menerapkan paging dalam array.
/////////////////////////////////////////////////////////////
//////////MENERAPKAN PAGING ARRAY////////////////////////////
/////////////////////////////////////////////////////////////
?>
<table width="100%" border="1">
  <tr>
    <td>No</td>
    <td>Nama Barang</td>
  </tr>
<?
$no=$posisi+1;
$counts = count($link);
$i=0;
//$posisi,$batas
while($i < $batas )
{
?>
  <tr>
    <td><?php echo $no;?></td>
    <td><?php echo $link[$i]."---dan---".$link2[$i];?></td>
  </tr>
<?php
$no++;
$i++;
}
?>
</table>
<?php

Langkah 4 (keempat)

Tahap terakhir, membuat paging halaman.
/////////////////////////////////////////////////////////////////////////
////////////////////TAHAP TERAKHIR PAGING HALAMAN////////////////////////
/////////////////////////////////////////////////////////////////////////
echo"<div align=\"center\">";
 $jmldata = $counts;
 $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"

Total Data : <b>$jmldata</b> Data";
echo"</div>";
?>
</form>

GOOD. . . . . . . KALIAN SUKSES,,,,SAYA MENGACUNGI JEMPOL BUAT KALIAN SEMUA....
SIP. . . . . .!!!!!!!

0 komentar:

Posting Komentar

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