PHP

This is a guide how to create a pagination in PHP
How To Create A Pagination In PHP

Overview


This is a script to make pagination in PHP with (Previous Next) buttons.This is what you'll get after finished this code


http://img14.imageshack.us/img14/4281/32313001.gif

Syntax:


Pages($tbl_name,$limit,$path);

Parameters

tbl_name
your mysql table e.g(jooria_users) and use normal mysql querys e.g(jooria_users where groupid='5')
limit
how many items to show per page.
path
is the name of file ex. I saved this file as pagination.php, my $path should be "pagination.php?". I saved this file as home/pagination/ my $path should be "home/pagination/" to appear "home/pagination/page="

dowwnload

you can download the code with the examples + 3 css styles:Pagination.zip [3.87 KB]

Usage:

use this function to Creates Full Pagination to creat a new Pagination use this:

Pages("table","limit to appear","the path");

Example#1:

i have a table in my mysql named 'my_users' contain some users table

echo Pages("my_users","20","path/users/");

this will Return all users in pages and pages urls will be: /path/users/page=(page number)

The function

pagination.php [2.82 KB]
function Pages($tbl_name,$limit,$path)
{
	$query = "SELECT COUNT(*) as num FROM $tbl_name";
	$total_pages = mysql_fetch_array(mysql_query($query));
	$total_pages = $total_pages[num];
	$adjacents = "2";
	$page = $_GET['page'];
	if($page)
	$start = ($page - 1) * $limit;
	else
	$start = 0;

$sql = "SELECT id FROM $tbl_name LIMIT $start, $limit";
$result = mysql_query($sql);

	if ($page == 0) $page = 1;
	$prev = $page - 1;
	$next = $page + 1;
	$lastpage = ceil($total_pages/$limit);
	$lpm1 = $lastpage - 1;

	$pagination = "";
    if($lastpage > 1)
    {   
	$pagination .= "<div class='pagination'>";
    if ($page > 1)
    	$pagination.= "<a href='".$path."page=$prev'>« previous</a>";
    else
    	$pagination.= "<span class='disabled'>« previous</span>";   
    
        if ($lastpage < 7 + ($adjacents * 2))
        {   
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page)
                	$pagination.= "<span class='current'>$counter</span>";
                else
                	$pagination.= "<a href='".$path."page=$counter'>$counter</a>";     
                         
            }
        }elseif($lastpage > 5 + ($adjacents * 2)){
        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='".$path."page=$counter'>$counter</a>";     
                         
            }
        	$pagination.= "...";
        	$pagination.= "<a href='".$path."page=$lpm1'>$lpm1</a>";
        	$pagination.= "<a href='".$path."page=$lastpage'>$lastpage</a>";   
           
        }elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)){
        	$pagination.= "<a href='".$path."page=1'>1</a>";
        	$pagination.= "<a href='".$path."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='".$path."page=$counter'>$counter</a>";     
                     
        }
        	$pagination.= "..";
        	$pagination.= "<a href='".$path."page=$lpm1'>$lpm1</a>";
        	$pagination.= "<a href='".$path."page=$lastpage'>$lastpage</a>";   
           
        }else{
        	$pagination.= "<a href='".$path."page=1'>1</a>";
        	$pagination.= "<a href='".$path."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='".$path."page=$counter'>$counter</a>";     
                     
        }
        }
    }
    
    if ($page < $counter - 1)
    	$pagination.= "<a href='".$path."page=$next'>next »</a>";
    else
    	$pagination.= "<span class='disabled'>next »</span>";
    	$pagination.= "</div>n";       
    }


return $pagination;
}

The Css:

style1.css | style2.css | style3.css
div.pagination {
padding: 3px;
margin: 3px;
text-align:center;
}

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.digg 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;
}
in: » Website Programming » PHP | Posted on Sep 16th, 2009 | last update on Jun 17th, 2010 | views 38,647
About the author
i'm moustafa from egypt i love doing one thing 'web programming & designing', This year I've got 19 years old and i'm in the english College of management (in Business Administration part soon)