each number page will have a link using the GET method in url
lets say for example i have a forums, and for each topic i want to show only 20 replies per page. so lets say i have a forums topic with 200 replies, so if you do that math, i should end up with 10 pages.
now all you have to do to see this script in action, is copy and paste to your text editor. then save it as webune-pagination.php and upload to your website, then open it in your browser and you will see how it works.
Thanks to the folks at www.webune.com for their support on this.
webune-pagination.php
<h1>PAGINATION SCRIPT BY <a href="http://www.webune.com">WWW.WEBUNE.COM</a></h1>
<?
$num_of_items = 200;
$items_per_page = 9;
$max_links = 10;
if($_GET['page_num']){
$page_num = $_GET['page_num'];
} else {
$page_num = 1;
}
?>
<h1>PAGE: <? echo $page_num; ?></h1>
<strong>example:</strong> <br>
<strong>number of items</strong> = <? echo $num_of_items; ?><br>
<strong>number of items per page</strong> = <? echo $items_per_page; ?><br>
<strong>number of links per page</strong> = <? echo $max_links; ?><br>
<?
############################################ PAGINATION FUNCTION ########################################
############################################ PAGINATION FUNCTION ########################################
function pagination_link($id, $page_num)
{
return $_SERVER['PHP_SELF'].'?page_num='.$page_num;
}
function pagination($num_of_items, $items_per_page, $id, $page_num, $max_links)
{
$total_pages = ceil($num_of_items/$items_per_page);
if($page_num) {
if($page_num >1){
$prev = ' <a href="'.pagination_link($id, ($page_num -1 )).'">< PREV</a> ';
$first = '<a href="'.$_SERVER['PHP_SELF'].'"><<</a>';
}
}
if($page_num <$total_pages){
$next = ' <a href="'.pagination_link($id, ($page_num+1)).'">NEXT ></a> ';
$last = ' <a href="'.pagination_link($id, $total_pages).'">>></a> ';
}
echo $first;
echo $prev;
$loop = 0;
if($page_num >= $max_links) {
$page_counter = ceil($page_num - ($max_links-1));
} else {
$page_counter = 1;
}
if($total_pages < $max_links){
$max_links = $total_pages;
}
do {
if($page_counter == $page_num) {
echo ' <strong>'.$page_counter.'</strong> ';
} else {
echo '<a href="'.pagination_link($id, ($page_counter)).'">'.$page_counter.'</a> ';
}
$page_counter++; $current_page=($page_counter+1);
$loop++;
} while ($max_links > $loop);
echo $next;
echo $last;
}
?>
<div align="center">
<?
pagination($num_of_items, $items_per_page, $id, $page_num, $max_links)
?>
</div><br>
<br>
<div align="center"><a href="http://www.webune.com">PHP/MYSQL WEB HOSTING<br>
<img src="http://www.webune.com/images/headers/default_logo.jpg" border="0"></a></div>
hope this helps, please provide any comments, whether be good or bad
