PHP Pagination Basic

Tuesday, March 04, 2014

Rujukan ringkas untuk membuat paging di PHP.

<table class="table table-hover table-condensed">
 <thead>
 <tr>
  <th>title</th>
  <th>title</th>
  <th>title</th>
 </tr>
 </thead>
 <tbody>
<?php
$limitrekod=200; // 200 data akan dipaparkan dalam satu page.
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; }; 
$start_from = ($page-1) * $limitrekod; 

$sql = "SELECT .... 
 LIMIT $start_from, $limitrekod";
$result = mysql_query($sql,$con);
while($row = mysql_fetch_array($result))
{
?> 
 <tr>
  <td><?php echo $row['xxx']; ?></td>
  <td><?php echo $row['xxx']; ?></td>
  <td><?php echo $row['xxx']; ?></td>
 </tr>
<?php 
$runno++;
}
?>
 </tbody>
</table>

<!-- mula untuk pagination -->
<?php  
$sqlpg = "SELECT ...."; //select tanpa limit  
$rs_result = mysql_query($sqlpg,$con);
$total_records = mysql_num_rows($rs_result); 
$total_pages = ceil($total_records / $limitrekod); 
?>
<ul class="pagination mtm mbm">
 <li class="<?php if($page == 1) echo "disabled"; ?>"><a href="viewdata.php?page=1">«</a></li>
<?php 
for ($i=1; $i<=$total_pages; $i++) { 
?>
 <li class="<?php if($page == $i) echo "active"; ?>"><a href="viewdata.php?page=<?php echo $i; ?>"><?php echo $i; ?></a></li>
<?php 
};
?>
 <li class="<?php if($page == $total_pages) echo "disabled"; ?>"><a href="viewdata.php?page=<?php echo $total_pages; ?>">»</a></li>
</ul>

Hasilnya akan dapat seperti di bawah

Jika datanya ada sejuta, maka akan terpaparlah butang page sebanyak (1000000/200) = 5 ribu butang.

Bagi data yang tidak banyak, sesuailah code di atas digunakan. Jika data yang terlalu banyak, perlu diringkaskan cara paparan paging tersebut.