[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

21 thoughts on “[Contoh] Super Simple Paging Halaman PHP MySQL

  1. mf hanya komentar dikit dan ngasih masukan… yg diatas kurang koding nya dikit…

    $page = isset($_GET[‘page’]) ? $_GET[‘page’] : 1 ;
    tidak ada di contoh soal..

    terimakasih…

    1. Terimakasih masukannya, namun pada contoh diatas memang bagian :

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

      sudah dimasukkan dalam script paging.php. Mohon koreksinya kembali. CMIIW 🙂

  2. dihalaman tampilnya tambah ini broo kalo nggak nanti error pas dihalaman satu klik sebelumnya trus muncul error

    $page = isset($_GET[‘page’]) ? $_GET[‘page’] : 1 ;
    if( ( $page < 1) && (empty( $page ) ) ){
    $page=1;
    }

    $item_per_page = 20;
    paging( $sql,$item_per_page );
    $batas = ($page – 1) * $item_per_page;

  3. Mas saya punya skrip untuk menampilkan data User seperti di bawah ini, kalo mau di kasih fungsi paging kaya di atas gimana ya caranya. Mohon bantuannya soalnya saya baru belajar.

    <?php
    echo "User

    NoIDUsernameAksi”;

    include “../config/koneksi.php”;
    $tampil=mysql_query(“SELECT * FROM admin ORDER BY id_admin”);
    $no=1;
    while ($r=mysql_fetch_array($tampil)){
    echo “$no
    $r[id_admin]
    $r[username]
    Edit
    Hapus
    “;
    $no++;
    }
    echo “”;
    ?>

Leave a Reply

Your email address will not be published. Required fields are marked *

NIPNamaHONORStatus Ambil