[Contoh] Super Simple Paging Halaman PHP MySQL

Berdasarkan sebuah request/permintaan melalui surel, seorang rekan saya menanyakan : dapatkah Paging/penomoran halaman dipermudah , dipersingkat, tanpa ribet koding namun juga tidak ribet memenuhi halaman jika halaman hingga ribuan. Sebenarnya paging/ pemberian nomor halaman pada PHP tergantung pada kebutuhan. Biasanya sesuatu yang lengkap akan membutuhkan penanganan yang lengkap juga. Begitu juga dengan paging. Namun kadang dengan analisa yang tepat, bisa juga didapatkan sesuatu yang simple dan enak, dan dapat memenuhi banyak kebutuhan. Berikut disini saya paparkan hasil analisa paging simple penomoran halaman sederhana namun cukup powerfull.

 
Paging ini dimulai dari penentuan jumlah item tiap halaman yang akan ditampilkan. Selanjutnya dilakukan penangkapan parameter page dari method GET. Dalam contoh, item per halaman ditampilkan 10.

$item_per_page = 10;
$page =  isset($_GET['page']) ? $_GET['page'] : 1 ;

Notasi tersebut berarti $page adalah didapat dari jika $_GET[‘page’] ter-set. Namun jika tidak akan berisi value 1. Untuk menghindari penomoran melewati batas, seperti kurang dari satu atau berisi value kosong, maka hadang / filter dulu dengan

if( ( $page < 1) && (empty( $page ) ) ){
      $page=1; 
   }

Untuk mendapatkan jumlah halaman berarti harus didapatkan lebih dulu jumlah item yang ada. Jumlah item yang ada didapat dari query SQL.

   $sql           = "select * from `table`";
   $query         = mysql_query( $sql );
   $jumlah_data   = mysql_num_rows($query);
   $jumlah_hal    = ceil( $jumlah_data/$item_per_page );

Selanjutnya filter juga agar page yang terdapat di method GET tidak lebih dari jumlah halaman.

   if( $page>$jumlah_hal ){
      $page=$jumlah_hal;
   }

Kemudian kita dapat membuat sebuah variable $lanjut dan $sebelum dengan penentuan seperti ini:

   $lanjut  = $page + 1;
   $sebelum = $page - 1;

Barulah kita membuat kata-kata seperti berikut dilengkapi dengan navigasi Paging:

   Anda ada di halaman  dari 
<<   < sebelumnya    ||    selanjutnya >   >> Ke Halaman:

Tampilan sangat sederhana seperti berikut :

Anda ada di halaman 3 dari 3
<< < sebelumnya || sesudahnya > >>
Ke Halaman

Sederhana bukan?

Secara lengkap Code akan dipaparkan dalam bentuk fungsi, sehingga untuk penomoran halaman tinggal memanggil melalui fungsi seperti demikian

$sql = "select * from table";
$item_per_page =10;
paging($sql, $item_per_page);

FUNGSI UTAMA PAGING SIMPLE

Fungsinya adalah sebagai berikut di bawah (saya beri nama dengan paging.php). Anda dapat kopikan fungsi ini ke dalam kode anda, dan anda panggil ketika anda akan memberikan penomoran halaman. Anda juga dapat melakukan modifikasi sendiri sesuka hati:

$jumlah_hal ){
      $page=$jumlah_hal;
   }
   $lanjut  = $page + 1;
   $sebelum = $page - 1;
   ?>
   Anda ada di halaman  dari 
<<   < sebelumnya    ||    selanjutnya >   >> Ke Halaman:

Selanjutnya contoh perhalamannya akan seperti berikut:

Mudah bukan? Semoga bermanfaat

[Contoh] Menyiasati Paging dengan JQuery JCarousel

Paging adalah cara memisahkan banyaknya data dalam halaman-halaman tertentu dengan satu halaman berisi sejumlah data. Paging sering menjadi masalah tersendiri bagi para developer pemula. Dalam beberapa posting lalu, kita telah mempelajari Simple Advanced Paging PHP yaitu di posting https://blogit.bimosaurus.com/2011/09/13/simple-advanced-paging-php/. Namun saya mendapatkan request beberapa hal tentang bagaimana agar paging dapat disederhanakan lagi. Maka terbayanglah sebuah simple paging dengan menyiasati menggunakan JQuery JCarousel. Paging ini dapat menggunakan teknik PHP murni, dapat juga diakali dengan menggunakan Jquery Jcarousel.

JCarousel memiliki fungsi untuk membuat tampilan bergeser muncul satu demi satu seperti pada contoh disini: https://blogit.bimosaurus.com/demo/paging_jq.php.

Mudah saja, dengan demikian kita bisa mengkreasikan paging dengan JCarousel ini. Kita akan memilih JCarousel model Lite yang ringan, dengan JQuery Minimal juga. Silakan dapat di download di http://www.gmarwaha.com/jquery/jcarousellite/#download, dan http://docs.jquery.com/Downloading_jQuery.

Saya memilih : jquery-1.7.1.min.js dan jcarousellite_0.4.0.min.js. Selanjutnya, anda dapat membuat script tampilan paging seperti berikut ini:

 

NIPNamaHONORStatus Ambil
Nip Nama Honor Status Ambil





Or Go To :

Saya masih memilih setia menggunakan database lama saya yang saya gunakan untuk contoh-contoh lalu, database kepegawaian. Dengan tabel pegawai seperti berikut:

nip nama honor status_ambil
10001 Susanto Rp. 1000000 Belum
10002 Susanti Rp. 1000000 Sudah
10003 Marwoto Rp. 2000000 Sudah
10004 Gunadi Rp. 1500000 Belum
10005 Nur Eko Rp. 1000000 Belum

Nah, selamat mencoba, semoga sukses dan semoga bermanfaat

Simple Advanced Paging PHP

Membuat Fungsi Advanced Paging dengan berbasis Block pada PHP

Teknik Paging adalah teknik yang digunakan pada segala bahasa pemrograman dalam strategi penyajian data banyak. Jika dalam satu halaman tidak mampu menangani banyaknya data, maka akan dibuat halaman-halaman untuk mempermudah navigasi dan tidak memberatkan halaman pertama. Jika data hanya satu data atau dibawah 100 mungkin tidak masalah dengan penggunaan satu halaman. Namun diluar itu akan menjadi masalah besar. Sangat berat kemungkinan menyakinan puluhan ribu data dalam satu halaman depan. Tentu data tersebut akan dibagi dalam beberapa halaman.

Teknik Paging sederhana pun ternyata tidak cukup untuk memenuhi kebutuhan penyajian data. Misal, diketahui terdapat 10.000 data, dan satu halaman akan menampilkan 10 data. Dengan keadaan seperti itu maka pada navigasi halaman harus ditampilkan 100000/10 = 1000 nomer halaman. tentu hal ini juga tidak menguntungkan baik bagi tampilan maupun kinerja server. Berikut dibawah akan saya tampilkan lagi teknik paging yang sederhana namun dapat mengampu data banyak. Kira-kira hasilnya akan menjadi seperti ini:

Logika-logika dasar yang harus dipenuhi adalah:

  1. Server Web mendapatkan informasi tentang permintaan halaman oleh client adalah dari HTTP Request jenis GET
    Contoh : http://server.ini/index.php?page=1 => permintaan halaman satu, dengan GET[page]
  2. Jika tidak terdapat GET permintaan halaman, maka dianggap client meminta halaman 1
  3. Satu block halaman akan menangani 10 nomer halaman. Block pertama adalah 1-10. Informasi mengenai block didapat dari PENDEKATAN KE ATAS (ceil) dari nomer halaman yang sedang diakses, dibagi dengan jumlah halaman dalam satu block.
    Misal client melakukan akses halaman 11. Berarti client sedang memasuki block ke ? ceil(11/10)=2
    client melakukan akses halaman 9? berarti jelas block ke 1.
  4. LINK PREVIOUS/SEBELUMNYA didapat dengan cara membandingkan, apakah halaman aktif itu masih lebih besar daripada halaman terakhir block 1. Jika lebih besar, maka halaman PREVIOUS aktif. Jika tidak, tidak akan diaktifkan. Jika aktif, maka, halaman previous akan berisi link halaman terakhir dari block sebelumnya.
    Jika diakses halaman 44 maka block aktif adalah block 5, previous adalah 40
  5. LINK Next/Lanjut didapat dengan cara membandingkan, apakah halaman terakhir block aktif masih kurang dari jumlah halaman? Jika masih kurang, maka tombol next dimnculkan dengan link halaman pertama dari block setelahnya.
  6. Jumlah halaman ditentukan dengan menentukan pembulatan keatas dari pembagian jumlah data seluruhnya dibagi dengan jumlah data dalam satu halaman. Misal, terdapat jumlah data 44, dengan satu halaman adalah 5 data per halaman, maka akan didapat 9 jumlah halaman / ceil(44/5)

Berikut Source Code nya


 $jumhal ) {
      $page    = $jumhal;
      $block   = ceil($page/$page_per_block);
   }elseif($_GET[page] < 1){
      $page    = 1;
      $block   = 1;
   }
   /*end of prevention*/
   
   if ( $jumhal>1 )  {
      ?>
      Halaman : 
      = $jumblock  )
      {
         $prev = "yes";
         $next = "no";
      }
      else
      {
         $prev = "yes";
         $next = "yes";
      }


      if (  $prev == "yes"  )  {
         $prev_page  = ( ($block - 1) * $page_per_block );
         $prev_block = $block - 1;
         ?>
         ««First
         «Prev
         1) )  {
      ?>
         ««First
         «Prev
         
            
            
            
            
            Next»
            End » »
            
         Next»
         End»»
          End>>

*/
/*--------------------------------------------------------------------------------------------*/
?>

Cara menggunakan…

Simpanlah script paging diatas menjadi paging.php. Pastikan bahwa halaman yang akan anda paging meload Script seperti berikut:

$item_per_page = 10;
$page_per_block= 10;

$item_per_page adalah jumlah item tiap halaman, dan $page_per_block adalah jumlah halaman tiap Block. Selanjutnya, include kan paging php tersebut ke dalam halaman yang meload paging

include “paging.php”;

dan selanjutnya anda tinggal menmanggil fungsi dengan

paging ( $sql , $item_per_page , $page_per_block , $url , $page , $block )

Contoh:

paging('SELECT * FROM `table`',10,5,'?mod=namamodul&submod=namasubmodul',$page,$block);

Anda dapat mendownload script tersebut di sini

Lihat di halaman anda…

http://www.ziddu.com/download/16369565/paging.php.zip.html

Semoga berguna!…

bimosaurus

eof