<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;
 
        }
 
          
 
}?>
 
 |