Untuk menampilkan data dari table yang memiliki banyak records sangat dibutuhkan sistem Paginasi, untuk memudahkan navigasi. Ada beberapa teknik membuat paginasi, berikut salah satu teknik paginasi menggunakan Ajax-PHP-MySQL.
Langkah pertama adalah membuat contoh database yang memiliki struktur tabel sebagai berikut :
CREATE TABLE `records` ( `id` int(11) NOT NULL auto_increment, `img` varchar(255) NOT NULL, `message` varchar(200) NOT NULL, PRIMARY KEY (`id`) )Isi tabel tersebut dengan beberapa contoh data dengan struktur data yang ada, Kemudian buat program PHP yang berfungsi untuk menghubungkan PHP dengan database, simpan file ini dalam bentuk PHP :
<?php
/* Database config */
$db_host = 'localhost';
$db_user = 'user database';
$db_pass = 'password database';
$db_database = 'nama database';
/* End config */
$link = @mysql_connect($db_host,$db_user,$db_pass) or die('Unable to establish a DB connection');
mysql_query("SET NAMES 'utf8'");
mysql_select_db($db_database,$link);
?>
Berikutnya membuat program PHP yang bertujuan untuk mengambil dan menampilkan isi dari tabe, simpan dalam bentuk PHP :<?php
include("connect.php");
$per_page = 4;
$sqlc = "show columns from records ";
$rsdc = mysql_query($sqlc);
$cols = mysql_num_rows($rsdc);
$page = $_REQUEST['page'];
$start = ($page-1)*4;
$sql = "select * from records order by id limit $start,4";
$rsd = mysql_query($sql);
?>
<?php
while ($rows = mysql_fetch_assoc($rsd))
{?>
<div class="each_rec"> <img src="<?php echo $rows['img'];?>" height="50" width="70" style="float:left; margin-right:3px;" alt="" /> <?php echo $rows['message'];?></div>
<?php
}?>
Program javascript berikut untuk menampilkan data yang telah diambil menggunakan Program PHP di atas :$(document).ready(function(){
//show loading bar
function showLoader(){
$('.search-background').fadeIn(200);
}
//hide loading bar
function hideLoader(){
$('.search-background').fadeOut(200);
};
$("#paging_button li").click(function(){
//show the loading bar
showLoader();
$("#paging_button li").css({'background-color' : ''});
$(this).css({'background-color' : '#A5CDFA'});
$("#content").load("data.php?page=" + this.id, hideLoader);
});
// by default first time this will execute
$("#1").css({'background-color' : '#A5CDFA'});
showLoader();
$("#content").load("data.php?page=1", hideLoader);
});
Berikut style CSS untuk mengatur tampilan paginasi :/* CSS Document www.99points.info */
#heading
{
font-family:Georgia, "Times New Roman", Times, serif;
font-size:56px;
color:#CC0000;
}
body{
text-align:center;
font-family:Arial, Sans-Serif;
font-size:0.75em;
}
/* CSS Document */
#container {
height:300px;
padding:12px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.6);
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.6);
text-align: center;
text-decoration: none;
width: 600px;
margin-top:40px;
}
#container .each_rec{
color:#000066;
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
padding:5px 5px 12px 5px;
border-bottom:solid #669900;
text-align:justify;
margin-bottom:11px;
}
.search-background {
display: none;
font-size: 13px;
font-weight: bold;
height:160px;
position: absolute;
padding-top:140px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.6);
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.6);
text-align: center;
opacity:0.5;filter: alpha(opacity=50) ;
text-decoration: none;
width: 600px;
}
.search-background {
background-color: #ff4242;
color:#FFFFFF;
text-shadow: #fff 0px 0px 20px;
}
search-background label{
border:solid #66FF00 1px;
}
#paging_button ul{ width: 600px; padding:0px; margin:8px;}
#paging_button ul li { -moz-border-radius: 6px;
-webkit-border-radius: 6px;
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.6);
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.6);
float:left; height:20px; width:20px; list-style-image:none;
list-style-type:none; font-weight:bold; border:solid #CCCCCC 1px;
margin:3px; cursor:pointer}
li:hover{ color: #CC0000; cursor: pointer; }
Akhirnya semua program tersebut dijadikan satu dalam sebuah halam :<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Paginasi Halaman dengan Ajax</title>
<link rel="stylesheet" type="text/css" media="screen" href="css.css" />
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript" src="js.js"></script>
</head>
<body>
<?php
$per_page = 4;
include("connect.php");
$sql = "select * from records ";
$rsd = mysql_query($sql);
$count = mysql_num_rows($rsd);
$pages = ceil($count/$per_page)
?>
<div align="center">
<h1>Paginasi Halaman dengan Ajax</h1>
<div id="container">
<div class="search-background">
<label><img src="loader.gif" alt="" /></label>
</div>
<div id="content"></div>
</div>
<div id="paging_button">
<ul>
<?php
//Show page links
for($i=1; $i<=$pages; $i++)
{
echo '<li id="'.$i.'">'.$i.'</li>';
}?>
</ul>
</div>
</div>
<br clear="all" /><br clear="all" /><br clear="all" /><br clear="all" /><br clear="all" /><br clear="all" />
</body>
</html>
Untuk meliha contoh dari program ditas bisa dilihat disini, dan untuk download contoh programnya disini.