Pagination (Halaman Data)
Jika tabel di database memiliki 1.000 data, menampilkannya sekaligus dalam satu halaman akan membuat website sangat lambat. Solusinya adalah Pagination — membagi data ke beberapa halaman (misal: 10 data per halaman).
Konsep Pagination
Pagination di PHP dan MySQL bekerja dengan perintah LIMIT dan OFFSET.
- LIMIT: Berapa banyak data yang mau ditampilkan per halaman.
- OFFSET: Berapa banyak data yang harus dilewati (skip).
Rumus OFFSET
Contoh jika Limit = 10:
- Halaman 1:
(1 - 1) * 10 = 0(Mulai dari baris ke-1) - Halaman 2:
(2 - 1) * 10 = 10(Lewati 10 baris pertama, mulai dari baris ke-11) - Halaman 3:
(3 - 1) * 10 = 20(Lewati 20 baris pertama, mulai dari baris ke-21)
Implementasi Lengkap di PHP
Buat file pagination.php:
Memahami bindValue
Pada langkah ke-6, kita menggunakan bindValue:
Mengapa tidak menggunakan execute([$limit, $offset]) seperti biasa?
Karena MySQL mengharuskan angka untuk LIMIT dan OFFSET. Jika menggunakan execute([...]), PDO akan mengirimnya sebagai String (teks), yang akan menyebabkan error Syntax Error di MySQL. PDO::PARAM_INT memaksa PHP mengirimnya sebagai tipe Integer (Angka).
Kesimpulan
Alur dasar pagination:
- Cari tahu
pageberapa dari$_GET['page']. - Hitung total data di database.
- Hitung
offsetberdasarkanpagedanlimit. - Ambil data dengan
LIMITdanOFFSET. - Tampilkan tombol navigasi (1, 2, 3...) menggunakan perulangan
for.
Setelah mahir membagi data menjadi halaman, mari kita pelajari cara menangani file dengan: Upload File →.