Saturday, February 28, 2009

Bikin Paging ala Google

Klo kita mau menampilkan data yg jumlahnya banyak pasti akan kita bagi jadi beberapa halaman ato page,tp klo halamannya hanya sampe 5-10 sih gak masalah, gmana klo pagenya nyampe 50 ato bahkan ratusan, pasti gak bagus lagi dong kelihatannya. Klo kita liat pagingnya google, page yg ditampilkan cman beberapa page saja sisanya akan disembunyikan dan baru akan ditampilkan klo kita berada pada page yg deket dengan page itu.



Misalnya ada 100 page, yang pertama ditampilkan adalah page 1,2,3…100 saja, klo kita berada pada page 3, maka akan ditampilkan 3,4,5…100 beserta link next, previous, first dan last, jadi lbh bagus diliat. contoh scriptnya :



<table><tr><th>No</th><th>Judul film</th><th>Genre</th></tr>

<?php


mysql_connect("localhost","root","root");


mysql_select_db("web_film");



$batas=5;

$halaman=$_GET['halaman'];


if(empty($halaman))


{


    $posisi=0;


    $halaman=1;


}


else


{


    $posisi = ($halaman-1) * $batas;


}



$tampil="select id_film,judul from film limit $posisi,$batas";

$hasil=mysql_query($tampil);



$no=$posisi+1;

while ($data=mysql_fetch_array($hasil)){


  echo "<tr><td>$no</td><td>$data[id_film]</td><td>$data[judul]</td></tr>";


  $no++;


}


echo "</table><br>";



$file="film.php"; //nama fil phpnya



$tampil2="select * from film";

$hasil2=mysql_query($tampil2);


$jmldata=mysql_num_rows($hasil2);



$jmlhalaman=ceil($jmldata/$batas);



//link ke halaman sebelumnya (previous)

if($halaman > 1)


{


    $previous=$halaman-1;


    echo "<A HREF=$file?halaman=1><< First</A> |


        <A HREF=$file?halaman=$previous>< Previous</A> | ";


}


else


{


    echo "<< First | < Previous | ";


}



$angka=($halaman > 3 ? " ... " : " ");

for($i=$halaman-2;$i<$halaman;$i++)


{


  if ($i < 1)


      continue;


  $angka = "<a href=$file?halaman=$i>$i</A> ";


}



$angka = " <b>$halaman</b> ";

for($i=$halaman+1;$i<($halaman+3);$i++)


{


  if ($i > $jmlhalaman)


      break;


  $angka = "<a href=$file?halaman=$i>$i</A> ";


}



$angka = ($halaman+2<$jmlhalaman ? " ... 
          <a href=$file?halaman=$jmlhalaman>$jmlhalaman</A> " : " ");



echo "$angka";



//link kehalaman berikutnya (Next)

if($halaman < $jmlhalaman)


{


    $next=$halaman+1;


    echo " | <A HREF=$file?halaman=$next>Next ></A> |


  <A HREF=$file?halaman=$jmlhalaman>Last >></A> ";


}


else


{


    echo " | Next > | Last >>";


}


echo "<p>Total film : <b>$jmldata</b> orang</p>";



?>



Yup, that all,…..



*Sumber : Membongkar Trik Rahasia Para Master PHP, Lukmanul Hakim.

No comments:

Post a Comment