Membuat paginasi atau halaman PHP Mysql

Membuat paginasi atau halaman PHP Mysql

4056
66
SHARE

Saat belajar pemrograman tentu kita akan sering berhubungan dengan database. Salah satu hal yang biasanya menjadi kendala bagi pemula yang belajar pemrograman yaitu menampilkan data dengan limit dan di bagi menjad per halaman.
Berikut ini kita akan belajar mengenai paginasi atau membuat halaman untuk menampilkan data mysql yang banyak.

LIVE DEMO

Membuat paginasi atau halaman PHP Mysql

Untuk mempermudah membuat paginasi, kita akan menggunakan fungsi pagination dari http://www.phpeasycode.com (anda bisa mendownloadnya pada link di bawah). Selain itu kita juga menggunakan bootstrap.css untuk mempercantik tampilan tabel kita nantinya.

Baiklah langsung saja kita mulai membuatnya.

Step 1 : Buatlah database dengan nama apa aja. Misalnya harviacode. Kemudian buatlah tabel provinsi dan masukkan data provinsi. (anda dapat mendownload file sqlΒ  dan file lainnya pada link di bawah)

Step 2 : Copy kan pagination1.php dan bootstrap.css dalam folder project anda.

Step 3 : Buatlah file index.php dengan kode sebagai berikut:

Step 4 : Jalankan index.php melalui browser. Maka akan terlihat hasilnya seperti live demo berikut ini.

LIVE DEMO | DOWNLOAD

Perlu menjadi perhatian bahwa parameter ?pagination=true pada variabel reload yaitu “index.php?pagination=true”, hanyalah parameter fake yang tidak akan kita pakai nilainya. tapi kita perlu menambahkan parameter tersebut sebab link pagination akan menambahkan ‘&page=2’ pada URL. Bila kita tidak menambahkan parameter awal maka alamat URL akan menjadi index.php&page=2 dan akan menghasilkan error 404.

Pada artikel berikutnya kita akan menambahkan form pencarian sehingga user bisa melakukan pencarian provinsi dengan mudah.

Cukup mudah bukan.. jangan lupa komentarnya ya.. thks

Bagikan artikel ini ya.. terima kasih

66 COMMENTS

  1. Min,kok pembacaan jumlah record datanya bener,tapi waktu saya klik halaman ke 2 jadi kosong..Saya mysqlnya pakai yg mysqli..Mohon pencerahannya..

  2. Sebelumnya terima kasih atas tutorialnya.
    Min, mau tanya saat di runing ada peringatan eror kayak gini :
    Notice: Undefined index: pages in C:\xampp\htdocs\……….
    tepatnya di :
    $page = intval($_GET[“page”]);
    padahal ga ada yg dirubah, mohon pencerahannya. πŸ™‚

    • $page = intval($_GET[β€œpage”]); ubah menjadi $page = intval(isset($_GET[“page”])?$_GET[“page”]:0); silahkan lihat artikel yg telah saya update. terimakasih.

      • min ane juga mengalami masalah yang sama, dan saya juga sudah rubah sesuai artikel updatenya tapi masih mengalami error yang sama,

        Notice: Undefined index: page in C:\xampp\htdocs\paging\index.php on line 22

        Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\paging\index.php on line 24

        $rpp = 10; // jumlah record per halaman
        $reload = “index.php?pagination=true”;
        $page = intval(isset($_GET[“page”])?$_GET[“page”]:0);
        if($page<=0) $page = 1;
        $tcount = mysql_num_rows($result);
        $tpages = ($tcount) ? ceil($tcount/$rpp) : 1; // total pages, last page number
        $count = 0;
        $i = ($page-1)*$rpp;
        $no_urut = ($page-1)*$rpp;

        sebelumnya terima kasih atas arahan dan ilmunya.

        • coba tambahkan $page = ”; diatas $rpp = 10; untuk error mysql_num_rows() expects parameter 1 to be resource itu kemungkinan karena perintah sql / query agan salah. coba di cek lagi querynya.

          • bang sblmnya saya ucapkan terima kasih untuk artikal paginnya karena membantu saya dalam pembuatan aplikasi Ta saya, saya doakan semoga harviacode terus berkembang situsnya dan makin bermanfaat bagi orng banyak ..

            saya sudah ikutin cara yang abang katakan tambahkan page = “; di atas $rpp = 10;

            codingnya seperti ini :

            $page = ”;
            $rpp = 5; // jumlah record per halaman
            $reload = “001_masterbarang_lihatdata.php?pagination=true”;
            $page = intval($_GET[“page”]);
            if($page<=0) $page = 1;
            $tcount = mysql_num_rows($result);
            $tpages = ($tcount) ? ceil($tcount/$rpp) : 1; // total pages, last page number
            $count = 0;
            $i = ($page-1)*$rpp;
            $no_urut = ($page-1)*$rpp;

            tapi masih saja error bang malah bertambah menjadi begini errornya

            Notice: Use of undefined constant Ò€ – assumed 'Ò€' in C:\xampp\htdocs\tapetshop1\admin\001_masterbarang_lihatdata.php on line 66

            Notice: Undefined index: page in C:\xampp\htdocs\tapetshop1\admin\001_masterbarang_lihatdata.php on line 67

            mohon bantuannya πŸ˜€

  3. Selamat Siang Mas, terimakasih atas Tuttorialnya membantu sekali. tapi saya mengalami kebuntuan terhadap tugas yang saya Buat, kenapa project yang saya buat Barisnya tidak mau berkurang ya? jadi semisal saya punya 8 baris dan ingin saya bagi 5 baris /pagenya baris tetap saja 8 tapi pagingnya berhasil jd 2 page,,
    apa boleh send email masalah saya ini mas? Terimakasih sebelumnya

  4. // query
    $nik=$_GET[‘nik’];
    $sql = “SELECT * FROM dattraining where nik_kar=’$_GET[nik]'”;
    $result = mysql_query($sql);

    //pagination config start
    $rpp = 10; // jumlah record per halaman
    $reload = “test.php?pagination=true”;

    Sebelumnya terimakasih pada admin atas Ilmunya…mantafff, begini… saya rubah berdasarkan db saya …. seprti cth diatas, tapi hasilnya halaman 1 bisa tampil s/d 10brs, tapi hal 2 dst…data tidak muncul….gmn tuh min….tks.

    • iya kalo spt itu akan ada kesalahan saat halaman ke 2 dst. coba perhatikan $nik. itu di dapat dari $_GET[‘nik’]. saat di klik halaman 2, alamat URL berubah dan variabel nik pada URL sudah tidak ada, maka query menjadi salah. solusinya tambahkan variabel nik pada variabel reload, sehingga saat di klik halaman berikutnya variabel nik tetap ada. Ubah $reload = β€œtest.php?pagination=true”; menjadi $reload = β€œtest.php?pagination=true&nik=”.$nik;

      • Sebelumnya terimakasih min artikelnya sangat membantu. Saya jg telah mencoba merubah sesuai db saya, tp di halaman kedua jg tidak muncul. Dan sudah saya tambahkan di bagian reload tp tetep saja tidak muncul min. Mohon bantuannya min. Terimakasih

        <?php
        $sql = "select * from info_sekolah join guru on info_sekolah.NIP=guru.NIP order by tgl_pos";

        $result = mysql_query($sql);

        //pagination config start
        $rpp = 10; // jumlah record per halaman
        $reload = "index.php?pagination=true&page=$page";
        $page = intval($_GET["page"]);
        if($page<=0) $page = 1;
        $tcount = mysql_num_rows($result);
        $tpages = ($tcount) ? ceil($tcount/$rpp) : 1; // total pages, last page number
        $count = 0;
        $i = ($page-1)*$rpp;
        $no_urut = ($page-1)*$rpp;
        //pagination config end

        while(($count<$rpp) && ($i

    • bisa mas, bikin css sendiri. pakai li, display block dll. minimal harus paham css nya mas untuk custom. yg di tutorial awalnya gak pakai bootstrap, cm saya modfi pakai bootstrap biar lebih mudah dipakai. cuma pas saya cari file awalnya (yg gak pakai bootstrap) gak ktm2. makanya lama balas komentar ini. hehe

  5. Saya mau bertanya tentang listing program paging number yang anda buat sebagai brikut;

    //pagination config start
    $rpp = 10; // jumlah record per halaman
    $reload = “?module=blender”;
    $page = intval($_GET[“page”]);
    if($page<=1) $page = 1 ; //kembali ke halamana wal

    $tcount = mysql_num_rows($result);
    $tpages = ($tcount) ? ceil($tcount/$rpp) : 1; // total pages, last page number
    if($page<=1) $page = $tpages ;
    else { if ($page=$tpages) $page = ($tpages-1) ;}
    $count = 0;
    $i = ($page-1)*$rpp;
    $no_urut = ($page-1)*$rpp;
    //pagination config end

    Pertanyaan, bagaimana cara paging number dibalik ke halaman terakhir, kan ketika kita ke halaman index Page number berada pada pisisi halaman paling awal tetapi saya mau paging number berada pada posisi halaman terkahir. Saya sudah mencoba listingnya dengan membalikkan kode programnya menjadi

    $tcount = mysql_num_rows($result);
    $tpages = ($tcount) ? ceil($tcount/$rpp) : 1; // total pages, last page number
    if($page<=1) $page = $tpages ; // ini coding yang dibalikkan sudah berhasil ke posisi halaman terahir tapi tidak bisa ke posisis halaman awal
    else { if ($page=$tpages) $page = ($tpages-1) ;}
    $count = 0;

    Tolong minta batuanya Dear Harviacode

    Terima Kasih

    • tinggal diubah aja default $page nya menjadi total page ($tpages).

      //pagination config start
      $rpp = 10; // jumlah record per halaman
      $reload = “index.php?pagination=true”;
      $page = intval(isset($_GET[“page”])?$_GET[“page”]:0);
      $tcount = mysql_num_rows($result);
      $tpages = ($tcount) ? ceil($tcount/$rpp) : 1; // total pages, last page number
      if($page<=0) $page = $tpages; $count = 0; $i = ($page-1)*$rpp; $no_urut = ($page-1)*$rpp; //pagination config end

  6. Min, kenapa ketika saya buat pagination di file php saya terus ketika mau di next, prev atau dipindahkan ke halaman lainnya kok linknya ke halaman home melulu?

    • variable reloadnya udah disesuaikan mas Irfan? yang ini ‘$reload = “index.php?pagination=true”;’ index.php disesuaikan dengan halamannya. misalnya ‘pegawai.php?pagination=true’

  7. malam min, makasih codenya :D. Udah tak dowload.
    Nah pas tak coba sy terapkan di php sy kok data yang terakhir tidak kelihatan ya?
    misal ada 27 record. muncul di jumlah nomor data bener ada 27, tp data nya gak kliatan. Jadi hanya keliatan jumlahnya aja. Tak cek di mysql bener ada datanya 27. seperti kayak kehidden iku min, iku napa ya min kira2? makasih sebelumnya πŸ˜€

  8. Mas Maaf Mengganggu mau tanya ini masalah yang $reload, variable sudah saya sesuaikan..sebelumnya saya membuat menu kontrol yaitu di buka_file.php
    <?php
    # KONTROL MENU PROGRAM
    if($_GET) {
    // Jika mendapatkan variabel URL ?open
    switch($_GET['open']){
    case 'Coba-Coba':
    if(!file_exists("cobacoba.php")) die ("File Tidak ada!");
    include "cobacoba.php"; break;
    otomatis di cobacoba.php $reload saya buat menjadi seperti ini $reload = "?open=Coba-Coba?pagination=true";, tetapi tetap saja kembali ke home. apa ada solusi mas ? Terima kasih

    • coba $reload = “?open=Coba-Coba&pagination=true”. Kalo kirim parameter, tanda tanya (?) hanya di awal (setelah .php). Kalo parameternya banyak, pakai tanyda dan (&).

  9. <?php
    // includekan fungsi paginasi
    include 'pagination.php';
    include './inc/connection.php';

    // query
    $sql = "SELECT * FROM tb_siswa ORDER BY nama";
    $result = mysql_query($sql);

    //pagination config start
    $rpp = 5; // jumlah record per halaman
    $reload = "?page=contoh&pagination=true";
    $halaman = intval($_GET["page"]);
    if($halaman
    mohon bantuannya min tidak bisa reload k halaman berikut, sebelumnya trimakasih

    • $reloadnya salah mas. harusnya $reload = namafile atau parameter untuk menuju ke halaman tersebut diikuti tanda tanya danseterusnya. contoh $reload = user?pagination=true. cukup seperti itu. parameter page akan tambahkan saat user klik halaman berikutnya.

LEAVE A REPLY