Page 1 of 1

Paging

Posted: Tue Apr 22, 2008 4:52 am
by phpcoder
Hi,

Can anyone give me some idea how to do paging on website.
Thanks

Re: Paging

Posted: Tue Apr 22, 2008 5:15 am
by onion2k
There are hundreds of topics on here that discuss it. Try searching.

Re: Paging

Posted: Tue Apr 22, 2008 6:54 am
by ianhull
Here is a little class file which does the job just fine for me :)

Code: Select all

 
 
class Pager
   {  
       function getPagerData($numHits, $limit, $page)  
       {  
           $numHits  = (int) $numHits;  
           $limit    = max((int) $limit, 1);  
           $page     = (int) $page;  
           $numPages = ceil($numHits / $limit);  
 
           $page = max($page, 1);  
           $page = min($page, $numPages);  
 
           $offset = ($page - 1) * $limit;  
 
           $ret = new stdClass;  
 
           $ret->offset   = $offset;  
           $ret->limit    = $limit;  
           $ret->numPages = $numPages;  
           $ret->page     = $page;  
 
           return $ret;  
       }  
   }  
 
    $page = $_GET['page'];  
    $limit = 20;//set how many records you want to show
    $result = mysql_query("select count(*) FROM tableName");  
    $total = mysql_result($result, 0, 0);  
 
    // work out the pager values  
    $pager  = Pager::getPagerData($total, $limit, $page); 
    $offset = $pager->offset;  
    $limit  = $pager->limit;  
    $page   = $pager->page;  
 
    // use pager values to fetch data
    $query = "SELECT * FROM tableName LIMIT $offset, $limit";
     
    $result = mysql_query($query);
  
    while ($line = mysql_fetch_array($result))    
    {
    extract($line);
 
    echo '';//your content
 
    };//end while
    
    // output paging system (could also do it before we output the page content)  
    for ($i = 1; $i <= $pager->numPages; $i++) {  
        echo ' ';  
        if ($i == $pager->page)  
            echo 'Page '.$i.'';
        else
            echo '<a href="'.$_SERVER['SCRIPT_NAME'].'/?page='.$i.'">Page '.$i.'</a>';  
    };