Saat ini hampir semua blog menggunakan paging atau pagination untuk membantu dalam membagi hasil postingan ke beberapa halaman, untuk membuat hal itu, mari kita bahas cara membuat halaman paging dengan MySQL PHP.
Pada saat kita menggunakan query SQL SELECT
, kita bisa saja menampilkan ribuan data. Sangat tidak sarankan untuk menampilkan semua hasil data pada satu halaman. Sebaiknya kita membagi hasil yang banyak ini menjadi beberapa halaman sesuai kebutuhan.
Paging berarti membagi hasil query kita di beberapa halaman, bukan menempatkan semua data dalam satu halaman. MySQL membantu dalam menghasilkan paging dengan menggunakan LIMIT
dengan mengambil dua argumen. Argumen pertama sebagai OFFSET
dan argumen kedua tentang berapa banyak data yang harus dihasilkan dari database.
Lebih jelas tentang pagination: Pagination
Di bawah ini adalah contoh skrip sederhana untuk mengambil data menggunakan LIMIT
dalam menghasilkan paging.
<html> <head> <title>Paging dengan PHP</title> </head> <body> <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $batas = 3; $koneksi = mysql_connect($dbhost, $dbuser, $dbpass); if(! $koneksi ) { die('Gagal Koneksi: ' . mysql_error()); } mysql_select_db('test_db'); /* Get total number of records */ $sql = "SELECT count(id_karyawan) FROM karyawan "; $ambildata = mysql_query( $sql, $koneksi ); if(! $ambildata ) { die('Gagal Ambil Data: ' . mysql_error()); } $row = mysql_fetch_array($ambildata, MYSQL_NUM ); $hitung = $row[0]; if( isset($_GET{'page'} ) ) { $page = $_GET{'page'} + 1; $offset = $batas * $page ; } else { $page = 0; $offset = 0; } $left_rec = $hitung - ($page * $batas); $sql = "SELECT id_karyawan, nama_karyawan, gaji_karyawan ". "FROM karyawan ". "LIMIT $offset, $batas"; $ambildata = mysql_query( $sql, $koneksi ); if(! $ambildata ) { die('Gagal Ambil Data: ' . mysql_error()); } while($row = mysql_fetch_array($ambildata, MYSQL_ASSOC)) { echo "ID KARYAWAN:{$row['id_karyawan']} <br> ". "NAMA KARYAWAN : {$row['nama_karyawan']} <br> ". "GAJI KARYAWAN : {$row['gaji_karyawan']} <br> ". "--------------------------------<br>"; } if( $page > 0 ) { $last = $page - 2; echo "<a href=\"index.php?page=$last\">3 Data sebelumnya</a> |"; echo "<a href=\"index.php?page=$page\">3 Data lagi</a>"; } else if( $page == 0 ) { echo "<a href=\"index.php?page=$page\">3 Data lagi</a>"; } else if( $left_rec < $batas ) { $last = $page - 2; echo "<a href=\"index.php?page=$last\">3 Data sebelumnya</a>"; } mysql_close($koneksi); ?>
Skrip diatas disimpan dalam nama index.php, pastikan server PHP dalam kondisi hidup dan buka dengan browser kesayangan anda. Maka browser akan menampilkan data seperti gambar dibawah ini:
Perhatikan skrip dan gambar diatas, limit atau batas di atur ke angka 3, sehingga hanya 3 data yang ditampilkan dalam setiap halaman.
Happy Nyekrip!
Pingback: Tutorial Lengkap Belajar PHP MySQL Untuk Pemula |
Mas kalau tanpa reloud page kita perlu tambahin js dimana? Mohon bantunya mas
skripnya kayakknya copas di rosihanari hehehehehe
maaf gan, anda salah besar, web ini dibuat berdasarkan pengalaman saya, jika ada kemiripan bukan berarti saya copas… kalau boleh tau bisa tunjukkan saya script mana yang copas dan mana alamat blog yang saya copas? kalau tidak bisa menunjukkan berarti anda memfitnah… hehe
tutorialnya sanga bermanfaat, saya juga menulis tutorial paging dengan menampilkan per satu halaman
makasih gan
mas apa tutor ini bisa dipakai untuk membagi jumlah posting perhalaman di blog statik
bisa mas, tapi sesuaikan ya.. :)
$last = $page -2; ?
Bisa di jelasin gan?
Mas, kalau pagenya blank putih itu kenapa ya mas? heheh maaf nubi