| 
<script>
function change_page(val,page,qry_st)
 {
 window.location = page+'?pagenum='+val+qry_st;
 }
 </script>
 <?php
 
 
 // for pagination of
 //  two types ,nomal link and dropdown menu
 // for normal links pass 'links' as the third parameter while creating the object and for dropdown pagination  pass 'dropdown'.
 class pagination
 {
 var $max_results_per_page=0; // no. of results to be shown per page
 var $total_results=0;        //no. of all  results to be shown over all pages
 var $max_pages =0;          // max. pages i.e the maximum number of pages for a particular query , calculated in the constructor
 var $current_page=0 ;      // the page no. that is currently rendered
 var $pagination_string='';  // the output string , which contains , the actual pagination  links/dropdown
 var $page_x_of_y = '';     // the output string , which contains  the string like 'page 1 of 2'
 var $qry_string = '';     // the query string with the address ,useful when the pagination is done on pages which has search feature as the GET parameters are not lost
 
 function __construct($total_res,$res_per_page,$pagination_type)
 {
 $this->max_results_per_page = $res_per_page;
 
 $this->total_results = $total_res;
 
 $this->max_pages = ceil($total_res/$res_per_page);
 
 $query_string = '';
 if(is_array($_GET))
 {
 foreach($_GET as $key=>$value)
 {
 if($key!='pagenum')
 $query_string .= '&'.$key.'='.$value;
 }
 }
 $this->qry_string = $query_string;
 
 if(isset($_REQUEST['pagenum']))
 {
 if($_REQUEST['pagenum']>$this->max_pages)
 {
 $this->current_page = $this->max_pages;
 }
 else if($_REQUEST['pagenum']<1)
 {
 $this->current_page = 1;
 }
 else
 {
 $this->current_page = $_REQUEST['pagenum'];
 }
 }
 else
 {
 $this->current_page = 1;
 }
 $this->page_x_of_y = 'page '.$this->current_page.' of '.$this->max_pages;
 switch($pagination_type)
 {
 case 'links':
 $this->page_links();
 break;
 case 'dropdown':
 $this->page_dropdown();
 break;
 default : die('Sorry no such pagination style as "'.$pagination_type.'"  exist');
 }
 }
 public function page_links()
 {
 if ($this->current_page > 1)
 {
 $page  = $this->current_page-1;
 
 
 // for image arrows
 // use this
 //    $prev  = "<a href='".$_SERVER['PHP_SELF']."?pagenum=$page".$qry_string."'><img src='../images/reverse.gif' width='10px' height='10px'></a> ";
 
 //if you dont have images use this
 $prev  = "<a href='".$_SERVER['PHP_SELF']."?pagenum=$page".$this->qry_string."'><<</a> ";
 }
 else
 {
 $prev  = ' '; // we're on page one, don't print previous link
 $first = ' '; // nor the first page link
 }
 
 if ($this->current_page < $this->max_pages  )
 {
 $page = $this->current_page + 1;
 // for image arrows
 // use this
 //    $next = "<a href='".$_SERVER['PHP_SELF']."?pagenum=".$page."'><img src='../images/forward.gif' width='10px' height='10px'></a> ";
 
 //if you dont have images use this
 
 $next = "<a href='".$_SERVER['PHP_SELF']."?pagenum=".$page.$this->qry_string."'>>></a> ";
 }
 else
 {
 $next = ' '; // we're on the last page, don't print next link
 $last = ' '; // nor the last page link
 }
 
 for($page = 1; $page <= $this->max_pages; $page++)
 {
 if ($page == $this->current_page)
 {
 $nav .= " $page "; // no need to create a link to current page
 }
 else
 {
 if($page>=$this->current_page-5 && $page<=$this->current_page+5)
 $nav .= "<a href='".$_SERVER['PHP_SELF']."?pagenum=$page"."$this->qry_string'>".$page."</a> ";
 }
 }
 $this->pagination_string = $prev.$nav.$next;
 
 }
 public function page_dropdown()
 { $nav = "<select name='pagenum' onChange=change_page(this.value,'".$_SERVER['PHP_SELF']."','".$this->qry_string."')>";
 for($page = 1; $page <= $this->max_pages; $page++)
 {
 
 if ($page == $this->current_page)
 {
 $nav .= "<option value='".$page."' selected>".$page."</option> ";
 }
 else
 {
 $nav .= "<option value='".$page."' >".$page."</option> ";
 }
 }
 $nav .= "</select>";
 $this->pagination_string = $nav;
 }
 public function get_pagination_query($qry)
 {
 $offset = ($this->current_page - 1) * $this->max_results_per_page;
 $max=" LIMIT $offset, $this->max_results_per_page";
 $new_query = $qry."".$max;
 return $new_query;
 }
 
 }?>
 |