Membuat Paging dengan PHP ala GOOGLE

Membuat Paging dengan PHP ala GOOGLE

Membuat Paging dengan PHP ala GOOGLE - Artikel kali ini melanjutkan dari artikel sebelumnya, kali ini kita akan membuat paging seperti di Google ada next, Previous First, dan last. untuk temen temen yang belum mengerti dasar-dasar dari paging mungkin temen-temen harus baca artikel sebelumnya, coba pelajari artikel ini 3 langkah Mudah Mnerapkan Paging di PHP setelah temen temen udah mengerti tentang dasar-dasarnya paging, baru kita menginjak materi kali ini.

Apabila kita mempunyai data yang sangat banyak misalnya ribuan bahkan jutaan seperti hasil pencarian di google, maka pagingnya tentu sangat banyak yang akan ditampilkan dalam beberapa baris.

Tentu paging seperti gambar diatas kurang efektif dan cukup mengganggu tampilan, untuk mengatasi hal tersebut, kita hanaya akan menampilkan tiga angka apabila berada dihalaman pertama, halaman kedua dan halaman terakhir, seperti contohnya 1 2 3 ... 8 dan lima paging untuk halaman lainnya ( dua halaman angka sebelum dan sesudah halaman aktif), misalnya halaman aktif adalah halaman 3, maka pagingnya 1 2 3 4 5 ... 8.jadi yang diubah hanya pada bagian menampilkan halaman angka saja.

oh iya, untuk artikel kali ini saya pakai OOP yang akan kita bungkus menjadi class (function) dalam sebuah file tersendiri, sehingga apabila kita memerlukan paging, kita tinggal include saja filenya tanpa harus menulis ulang dalam setiap file tampil data yang memerlukan paging

Pertama, kita akan membuat class paging terlebih dahulu

        <?php
        class Paging{
         function cariPosisi($batas){
          $halaman = @$_GET['halaman'];
          if(empty($halaman)){
           $position = 0;
           $halaman = 1;
          }else{
           $position = ($halaman - 1) * $batas;
          }
          return $position;
         }

         function jmlHalaman($jmlData,$batas){
          $jmlHal = ceil($jmlData/$batas);
          return $jmlHal;
         }

         Function linkHal($halamanAktif,$jumlahHalaman){
          $link_halaman = "";
          $file = $_SERVER['PHP_SELF'];

          // Link First dan Previous
          $prev = $halamanAktif-1;
          if($halamanAktif < 2){
           $link_halaman .= "First &nbsp; Prev  ";
          }else{
           $link_halaman .= "<a href='$file?halaman=1'>FIRST</a> &nbsp; <a href='$file?halaman=$prev'>PREV</a> &nbsp; ";
          }

          // link halaman 1,2,3,...
          // Angka awal
          $angka = ($halamanAktif > 3 ? "... &nbsp; " : " ");
          for($i=$halamanAktif-2;$i<$halamanAktif;$i++){
           if ($i < 1 )continue;
           $angka .= "<a href='$file?halaman=$i'>$i</a> &nbsp; ";
          }

          // Angka tengah
          $angka .= "<b>$halamanAktif</b> &nbsp; ";
          for($i=$halamanAktif+1;$i<($halamanAktif+3);$i++){
           if($i > $jumlahHalaman) break;
           $angka .= "<a href='$file?halaman=$i'>$i</a> &nbsp;";
          }

          // ANgka Akhir
          $angka .= ($halamanAktif+2<$jumlahHalaman ? " ... &nbsp; <a href='$file?halaman=$jumlahHalaman'>$jumlahHalaman</a> &nbsp;" : "");

          $link_halaman .= $angka;

          // Link Next dan Last
          if($halamanAktif < $jumlahHalaman){
           $next = $halamanAktif+1;
           $link_halaman .= "<a href='$file?halaman=$next'>Next</a> &nbsp; <a href='$file?halaman=$jumlahHalaman'>Last</a> &nbsp;";
          }else{
           $link_halaman .="Next &nbsp; Last &nbsp;";
          }
          return $link_halaman;
         }
        }
        ?>
    

Selanjutnya kita buat skrip view_paging yang akan menerapkan paging dengan menggunakan class dari file dari file fungsi_paging.

         <?php
        $con = mysqli_connect("localhost","root","","dboop");
        include"fungsi_paging.php";

        $p = new Paging();
        $batas = 10;
        $posisi = $p->cariPosisi($batas);

        $anggota = mysqli_query($con,"select * from anggota order by nama asc limit $posisi, $batas");
        $anggota1 = mysqli_query($con,"select * from anggota");
        if(mysqli_num_rows($anggota1)){
         echo"<table border=1 cellspacing='0'>";
         echo"<tr bgcolor='3300CC'>
         <th width='20' align='center'>No</th>
         <th width='150' align='center'>Nama</th>
         <th width='150' align='center'>Alamat</th>
         </tr>";
         $no = 1+$posisi;
         while($r=mysqli_fetch_array($anggota)){
          echo"<tr>
          <td align='center'>$no</td>
          <td width='200'>$r[nama]</td>
          <td width='200'>$r[alamat]</td>
          </tr>";
          $no++;
         }
         echo"<table>";

         $jumlahData = mysqli_num_rows($anggota1);
         $jml_halaman = $p->jmlHalaman($jumlahData,$batas);
         $link = $p->linkHal(@$_GET['halaman'],$jml_halaman);

         echo"<br >Hal : $link";

        }

        ?>
    

Itulah langkah langkah sederhana untuk membuat paging ala google. Tenang aja, udah saya siapkan untuk file download skripnya, untuk download skripnya silakan download dibawah ini, jangan lupa komen nya untuk kemajuan blog ini, terima kasih :) :)

Postingan terkait:

Belum ada tanggapan untuk "Membuat Paging dengan PHP ala GOOGLE"