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
Post a Comment for "Membuat Pagination Sederhana PHP dan MySQL"