Tutorial Membuat Paging dengan PHP dan Mysql

Publish Date : 11-03-2016 , dibaca 28830 kali, Hari ini dibaca : 1 kali ,0 comments

Tutorial Membuat Pagiing dengan PHP

Membuat Paging dengan PHP dan MySQL , Dalam menampilkan data di database mysql,Menampilkan data dalam jumlah yang banyak dalam satu halaman bukanlah cara yang efektif bagi web developer, Hal itu selain akan membuat tingkat load data dari database akan semakin besar, sementara itu  dari sisi user juga akan mngalami masalah dikarenakan harus selalu  men-scroll halaman hingga ratusan bahkan ribuan baris data.

Untuk mengatasi masalah tersebut, Tehik paging merupakan salah satu pilihan yang tepan, yaiut dengan menampilkan data  menjadi berapa halaman,  dengan jumlah data yang terbatas setiap halamannya (misalkan 20 –30 data per halaman). Untuk Membuat paging dengan PHP tidaklah sulit. Silahkan ikuti tutorial berikut ini.

Dibaca juga Ya :


OK Mari kita Mulai pembahasan Cara Membuat Paging dengan PHP dan MYSQL

Dasar Materi Pembuatan Paging

Query dalam menampilkan data di mysql adalah dengan query SELECT * FROM nama_tabel. Query tersebut akan menampilkan seluruh data dari tabel.
 
Dalam pembuatan paging dengan php mysql , kita harus membatasi jumlah data yang ditampilkan, yaitu dengan mambahkan perintah LIMIT offset, row_count sehingga untuk menampilkan data sebanyak 30 row, query menjadi seperti berikut.

SELECT * FROM nama_tabel LIMIT 0, 30;

Keterangan dari perintah diatas :

  • offset adalah berapa banyak data yang akan dilewati (skip). Jika offset 0, maka data ditampilkan dari baris pertama atau 1. Jika offset 5, maka data ditampilkan dari baris ke-6.
  •  row_count adalah jumlah data yang akan ditampilkan. misalnya 30


Jadi ,  LIMIT 0, 30 berarti menampilkan data sebanyak 30 baris dari baris pertama. Jika ingin menampilkan data sebanyak 30 data dimulai dari baris ke 31, maka query nya adalah LIMIT 30, 30.

Implementasi  Paging Mysql dengan PHP

Dalam pembuatan aplikasi / website biasanya akan banyak jenis table, Agar paging dapat digunakan berulang kali dengan mudah (reusable), maka paging kita buat sebagai function. Ada dua fungsi yang akan kita buat, yaitu :

  1.     getTableData() digunakan untuk mengambil data dari tabel yang digunakan untuk ditampilkan pada halaman yang dipilih.
  2.    showPagination() digunakan untuk menampilkan tombol pagination.


Dengan membuat kedua fungsi ini, kita akan dapat dengan mudah menampilkan tombol paginasi dan data dari tabel tanpa harus menulis ulang kode setiap kali diperlukan.

Mari kita Lanjut Materi...

Membuat Fungsi getTableData()

Buat file baru. Ketikkan kode berikut dan simpan dengan nama pagination.php.

function getTableData($tableName,$page=1,$limit=20)
{
    $dataTable=array();
    $startRow=($page-1)*$limit;
    $query=mysql_query('SELECT * FROM `'.$tableName.'` LIMIT '.$startRow.', '.$limit);
 
    while($data=mysql_fetch_assoc($query))
        array_push($dataTable,$data);

    return$dataTable;
}

Penjelasan Kode :

variabel $query, disini kita menerapkan query sql dengan LIMIT. Parameter offset dan row_count diambil dari variabel $limit dan $startRow. Variabel $startRow merupakan hasil perhitungan untuk mendapatkan nilai offset sehingga data yang ditampilkan sesuai dengan halaman yang dibuka.

Membuat Fungsi showPagination(

Tambahkan kode berikut pada file pagination.php.

function showPagination($tableName, $limit = 20)
{
    $countTotalRow = mysql_query('SELECT COUNT(*) AS total FROM `'.$tableName.'`');
    $queryResult = mysql_fetch_assoc($countTotalRow);
    $totalRow = $queryResult['total'];
 
    $totalPage = ceil($totalRow / $limit);
 
    $page = 1;
    while ($page <= $totalPage)
    {
        echo '<a href="?page='.$page.'&perPage='.$limit.'">'.$page.'</a>';
        if ($page < $totalPage)
            echo " | ";
 
        $page++;
    }
}

Untuk bisa membuat paging di website,kita harus dapat mengetahui jumlah total data yang ada terlebih dahulu, misalnya data yang ada hanya 8 ,sementara data tersebut akan kita buat paging dengan total jumlah data perhalaman 10 , tentu data tersebut masih kurang , dan paging halaman tidak akan muncul,, Data dari database  akan dibagi dengan jumlah data yang ditampilkan dalam satu halaman. Dengan demikian, kita mendapatkan jumlah paging yang dapat dibuat. Perhatikan variabel $totalPage.

example : Jumlah data 50 : 10 ( jumlah data setiap paging) = 5 Paging

Jika kita memiliki data sebanyak 13 baris dan akan ditampilkan sebanyak 5 data per halaman, Â maka paging yang dibuat adalah 3, sehingga data pada baris ke 11, 12, dan 13 dapat ditampilkan. Untuk memenuhi kebutuhan ini, maka digunakan fungsi ceil() untuk membulatkan pembagian ke atas karena 13 jika dibagi 3 tidaklah bulat 3 dan juga bukan 4.

Setelah jumlah total paging yang akan dibuat diketahui, sekarang kita tinggal membuat tombol sebanyak jumlah halaman (total paging) yang didapat dengan menggunakan pengulangan while ($page <= $totalPage).

Implementasi Fungsi Untuk Menampilkan Data

Buat dengan nama view.php

Pilih sebuah table dalam database anda , pilihlah table dengan minimal data 20 baris data

<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('paging');
 
include_once('pagination.php');
 
// untuk mengetahui halaman keberapa yang sedang dibuka
// juga untuk men-set nilai default ke halaman 1 jika tidak ada
// data $_GET['page'] yang dikirimkan
$page = 1;
if (isset($_GET['page']) && !empty($_GET['page']))
    $page = (int)$_GET['page'];
 
// untuk mengetahui berapa banyak data yang akan ditampilkan
// juga untuk men-set nilai default menjadi 5 jika tidak ada
// data $_GET['perPage'] yang dikirimkan
$dataPerPage = 5;
if (isset($_GET['perPage']) && !empty($_GET['perPage']))
    $dataPerPage = (int)$_GET['perPage'];
 
// tabel yang akan diambil datanya
$table = 'user';
 
// ambil data
$dataTable = getTableData($table, $page, $dataPerPage);
 
// menampilkan tombol paginasi
showPagination($table, $dataPerPage);
?>
 
<table>
    <thead>
        <tr>
            <th>No.</th>
            <th>Nama</th>
        </tr>
    </thead>
    <tbody>
    <?php
    foreach ($dataTable as $i => $data)
    {
        $no = ($i + 1) + (($page - 1) * $dataPerPage);
        echo '<tr>
                <td>'.$no.'</td>
                <td>'.$data['nama'].'</td>
            </tr>';
    }
    ?>
    </tbody>
</table>

Setelah itu , Jalankan file view.php

Dengan membuat paginasi menjadi fungsi, kita dapat dengan mudah menggunakan fitur paginasi tanpa harus menuliskan kode yang sama berulang kali pada halaman-halaman yang membutuhkan.

Demikian tutorial Cara Membuat Paging Dengan PHP MYSQL, Semoga Bermanfaat..

Produk Rekomendasi

Artikel Terkait

Diskusi



wa