Membuat Pagination Sederhana PHP dan MySQL

Paination
Selamat datang terima kasih telah berkumjung di blog sederhana ini pada tutorial kali ini akan membahasa bagaimana membuat pagination dengan PHP dan MySql.

Bisa saja suatu SQL SELECT menampilkan hasil berupa ribuan atau jutaan jutaan record dalam satu halaman. Dan jelas bukan ide yang baik untuk menampilkan semua hasil itu pada satu halaman saja, bisa dibayangkan berapa panjang halaman tersebut.  Untuk itu salah satu cara mengatasinya yaitu membagi hasil tersebut menjadi beberapa halaman.

Apakah itu Pagination?
Paging bisa diartikan menampilkan semua hasil yang dibagi dalam beberapa halaman alih-alih menunjukkan semuanya pada satu halaman, karena jika menampilkannya dalam satu halaman akan sangat panjang dan  membutuhkan banyak waktu untuk memuat halaman tersebut.

Cara membuat Pagination dengan PHP dan MySql

Klausa LIMIT MySQL sangat membantu membuat fitur pagination. Pagination ini menggunakan dua buah argumen pertama sebagai OFFSET dan argumen kedua menggunakan jumlah record dari database yang ingin ditampilkan.

Berikut langkah-langkah sederhana ini untuk membuat pagination di PHP

1. Ambil nomor halaman terakhir
Kode ini akan mendapatkan nomor halaman terakhir dengan bantuan $ _GET Array. Perhatikan bahwa jika tidak ada, maka akan kode akan mengatur nomor halaman default menjadi 1.


if (isset($_GET['pagination'])) {
    $pagination = $_GET['pagination'];
} else {
    $pagination = 1;

}

2. Rumus untuk pagination php
Rumus ini untuk mengelola berapa jumlah record yang akan ditampilkan di halaman dengan mengubah nilai variabel $no_of_records_per_page.

$no_of_records_per_page = 10;

$offset = ($pagination-1) * $no_of_records_per_page; 

3. Cari jumlah total halaman
Kode ini untuk mencari berapa jumlah total record dari database yang akan ditampilkan.

total_pages_sql = "SELECT COUNT(*) FROM table";
$result = mysqli_query($conn,$total_pages_sql);
$total_rows = mysqli_fetch_array($result)[0];
$total_pages = ceil($total_rows / $no_of_records_per_page);

4. Konstruksi SQL Query untuk pagination
$sql = "SELECT * FROM table LIMIT $offset, $no_of_records_per_page";

5. Tombol pagination
Tampilan tombol-tombol ini digunakan sebagai tombol navigasi halaman, seperti tombol Halaman berikutnya & halaman sebelumnya sehingga pengguna dapat dengan mudah menavigasi halaman. Tutorial ini menggunakan tombol pagination bootstrap. Jika ingin beda silahkan gunakan sesuai selera masing masing.

<ul class="pagination">
    <li><a href="?pagination=1">First</a></li>
    <li class="<?php if($pagination <= 1){ echo 'disabled'; } ?>">
        <a href="<?php if($pagination <= 1){ echo '#'; } else { echo "?pagination=".($pagination - 1); } ?>">Prev</a>
    </li>
    <li class="<?php if($pagination >= $total_pages){ echo 'disabled'; } ?>">
        <a href="<?php if($pagination >= $total_pages){ echo '#'; } else { echo "?pagination=".($pagination + 1); } ?>">Next</a>
    </li>
    <li><a href="?pagination=<?php echo $total_pages; ?>">Last</a></li>
</ul>

6. Berikut semua kode yang sudah ditulis dalam satu halaman
<html>
<head>
    <title>Pagination</title>
    <!-- Bootstrap CDN -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
    <?php

        if (isset($_GET['pagination'])) {
            $pagination = $_GET['pagination'];
        } else {
            $pagination = 1;
        }
        $no_of_records_per_page = 10;
        $offset = ($pagination-1) * $no_of_records_per_page;

        $conn=mysqli_connect("localhost","my_user","my_password","my_db");
        // Check Koneksi
        if (mysqli_connect_errno()){
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
            die();
        }

        $total_pages_sql = "SELECT COUNT(*) FROM table";
        $result = mysqli_query($conn,$total_pages_sql);
        $total_rows = mysqli_fetch_array($result)[0];
        $total_pages = ceil($total_rows / $no_of_records_per_page);

        $sql = "SELECT * FROM table LIMIT $offset, $no_of_records_per_page";
        $res_data = mysqli_query($conn,$sql);
        while($row = mysqli_fetch_array($res_data)){
            //ambil data dan menampilkannya
        }
        mysqli_close($conn);
    ?>
    <ul class="pagination">
        <li><a href="?pagination=1">First</a></li>
        <li class="<?php if($pagination <= 1){ echo 'disabled'; } ?>">
            <a href="<?php if($pagination <= 1){ echo '#'; } else { echo "?pagination=".($pagination - 1); } ?>">Prev</a>
        </li>
        <li class="<?php if($pagination >= $total_pages){ echo 'disabled'; } ?>">
         <a href="<?php if($pagination >= $total_pages){ echo '#'; } else { echo "?pagination=".($pagination + 1); } ?>">Next</a>
        </li>
        <li><a href="?pagination=<?php echo $total_pages; ?>">Last</a></li>
    </ul>
</body>
Selesai . . !!!

Bagimana? Sudahkah berhasil?

Jika iya, akan sangat membantu bila di share ke banyak orang. Kunjungi blog kami lebih sering untuk mendapat update informasi terbaru. Sekian artikel tentang Membuat Pagination Sederhana PHP dan MySQL ,terima kasih

0 Response to "Membuat Pagination Sederhana PHP dan MySQL"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel