MEMBUAT PAGINATION DENGAN PHP DAN MYSQL

Pagination atau paging digunaan untuk menampilkan data beberapa halaman. Misalnya kita memiliki 100 data atau lebih, terasa membosanka jika menampilkanya dalam 1 halaman saja. Untuk mengatasinya kita gunakan pagination, dengan membatasi jumlah data yang akan ditampilkan, misalkan 20 data dalam 1 halaman.

Disini kita akan menampilkan data dari database MySql, sebagai contoh kita buat database dengan nama latihan dan buat tabel mahasiswa dan isi tabelnya seperti gambar berikut:
Selanjutnya buat folder baru di dalam htdocs dengan nama latihan.
Kemudian bual file koneksi.php dan simpan di dalam folder latihan.

koneksi.php
<?php  
 mysql_pconnect("localhost","root","");
 mysql_select_db("latihan");
?>

Baca juga: Membuat Koneksi Database MySQL dengan PHP
Lngkah selanjutnya menampilkan data dan membuat pagination
data_mahasiswa.php
<?php 
 require_once("koneksi.php");//memanggil file oneksi.php
 $dataperhalaman=5;//batas data yang akan ditampilkan dalam 1 halaman
 if(isset($_GET['halaman'])){ //memeriksa apakah variabel halaman apakah sudah terkirim
  $nomorhalaman=$_GET['halaman']; //jika variabel halaman sudah terkirim
 }else{
  $nomorhalaman=1;//jika variabel halaman belum terkirim
 }
 $mulai=($nomorhalaman-1)*$dataperhalaman;//untuk menentukan baas awal data yang akan ditampilkan
 $query=mysql_query("select * from mahasiswa limit $mulai,$dataperhalaman");//untuk mengambil data dari mysql
 $row=mysql_fetch_assoc($query);//menyimpan data dalam row
 $jumlahdata=mysql_num_rows($query);//menghitung jumlah barih dari record/data
 ?>
<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="5">
 <thead>
  <th>ID</th>
  <th>NAMA</th>
 </thead>
 <?php  
  if($jumlahdata > 0){ //memeriksa apakah jumlah baris lebih dari 0
   do{
 ?>
 <tr>
  <td><?php echo $row['id'] ?></td>
  <td><?php echo $row['nama'] ?></td>
 </tr>
 <?php
   }while($row=mysql_fetch_assoc($query));
  }
 ?>
</table>
<?php  
 $query2=mysql_query("select * from mahasiswa");//mengambil seluruh data untuk menampilkan pagination
 $jumlahdata2=mysql_num_rows($query2);//menghitung jumlah barih dari record/data untuk pagination
 $jumlahhalaman=ceil($jumlahdata2/$dataperhalaman);
 if($nomorhalaman>1){
  echo "<a href='data_mahasiswa.php?halaman=".($nomorhalaman-1)."'>Sebelumnya</a>";
  //jika halaman lebih dari 1 akan muncul dan jika di klik akan menuju ke halaman sebelumnya
 }
 for($page=1;$page<=$jumlahhalaman;$page++){
  echo "<a href='data_mahasiswa.php?halaman=".$page."'>".$page."</a>";
 }
 if($nomorhalaman<$jumlahhalaman){
  echo "<a href='data_mahasiswa.php?halaman=".($nomorhalaman-1)."'>Selanjutnya</a>";
  //jika halaman sama dengan halaman terakhin akan hilang , jika di klik akan menuju ke halaman selanjutnya
 }
?>
</body>
</html>

Kemudian coba dijalankan denga url:localhost/latihan/data_mahasiswa.php




Silahkan dicoba, dipahami, dan diotak-atik. Bisa ditambahkan css nya juga
Jika ada yang urang jelas atau ada masukan silahkan tinggalkan komen dibawah.
Terima kasih,,
Semoga bermanfaat...

Share this

Related Posts

Previous
Next Post »