How to add Pagination in php

Pagination is dividing your total numbers of records in fixed number of rows..Remaining Records will Show as a Next Page..

Very Helpfully when Your Data Recordes are more , and want to show in Range manner. 

For That You only need to add some CSS and php Code to your Page at where you want to Add Paginatinon.


CSS of Pagination 


<style type="text/css">
div.pagination {
padding: 3px;
margin: 3px;
}
div.pagination a {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #AAAADD;
text-decoration: none; /* no underline */
color: #000099;
}
div.pagination a:hover, div.pagination a:active {
border: 1px solid #000099;
color: #000;
}
div.pagination span.current {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #000099;
font-weight: bold;
background-color: #000099;
color: #FFF;
}
div.pagination span.disabled {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #EEE;
color: #DDD;
}
</style>


PHP Code For Pagination 


<?php

/* Your mysql database connection Stattements Goes Here... */
// How many adjacent pages should be shown on each side?
$adjacents = 3;
/* 
  First get total number of rows in data table. 
  If you have a WHERE clause in your query, make sure you mirror it here.
*/
$query = "SELECT COUNT(*) as num FROM portfolio";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
/* Setup vars for query. */
$limit = 2; //how many items to show per page
if($page) 
$start = ($page - 1) * $limit; //first item to display on this page
else
$start = 0; //if no page var is given, set start to 0
/* Get data. */
$query = "SELECT category, uname, title FROM portfolio LIMIT $start, $limit";
$portfolio = mysql_query($query);
/* Setup page vars for display. */
if ($page == 0) $page = 1; //if no page var is given, default to 1.
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
/* 
Now we apply our rules and draw the pagination object. 
We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<div class=\"pagination\">";
//previous button
if ($page > 1) 
$pagination.= "<a href=\"diggstyle.php?page=$prev\">« previous</a>";
else
$pagination.= "<span class=\"disabled\">« previous</span>";
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"diggstyle.php?page=$counter\">$counter</a>";
}
}
elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"diggstyle.php?page=$counter\">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a href=\"diggstyle.php?page=$lpm1\">$lpm1</a>";
$pagination.= "<a href=\"diggstyle.php?page=$lastpage\">$lastpage</a>";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<a href=\"diggstyle.php?page=1\">1</a>";
$pagination.= "<a href=\"diggstyle.php?page=2\">2</a>";
$pagination.= "...";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"diggstyle.php?page=$counter\">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a href=\"diggstyle.php?page=$lpm1\">$lpm1</a>";
$pagination.= "<a href=\"diggstyle.php?page=$lastpage\">$lastpage</a>";
}
//close to end; only hide early pages
else
{
$pagination.= "<a href=\"diggstyle.php?page=1\">1</a>";
$pagination.= "<a href=\"diggstyle.php?page=2\">2</a>";
$pagination.= "...";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"diggstyle.php?page=$counter\">$counter</a>";
}
}
}
//next button
if ($page < $counter - 1) 
$pagination.= "<a href=\"diggstyle.php?page=$next\">next »</a>";
else
$pagination.= "<span class=\"disabled\">next »</span>";
$pagination.= "</div>\n";
}
?>
<ul>
  <?php
while($item = mysql_fetch_array($portfolio))
{
?>
  <li><a href="/portfolio//"></a></li>
  <?php
}
?>
</ul>
<?=$pagination?>


Thats all, Query and Variables are defines as per your table and database Details and Wich records you want to Display..


Comments