Snippet Name: Pagination Example #2
Description: A well thought out pagination function. Easy to modify and/or expand.
Also see: » Pagination Example #1
Comment: (none)
Language: PHP
Highlight Mode: PHP
Last Modified: March 16th, 2009
|
Paginating the mySQL data
<?PHP
FUNCTION pageSplit($startPos, $rowsPerPage = '', $totalRows = '' )
{
$numPages = $totalRows / $rowsPerPage ;
$tenthPages = $rowsPerPage * 10 ;
IF($startPos >= $tenthPages )
{
$back10Position = $startPos - $tenthPages ;
$pageString .= '<a href="'.$PHP_SELF.'?startPos='.$back10Position .'&perPageDisplay='.$rowsPerPage.'" title="Previous 10 Pages"><font color="red"><< </font></a> ';
}
IF($startPos >= $rowsPerPage)
{
$backPosition = $startPos - $rowsPerPage;
$pageString .= '<a href="'.$PHP_SELF.'?startPos='.$backPosition.'&perPageDisplay='.$rowsPerPage.'" title="Previous Page"><font color="blue">Back</a></font> ';
}
IF($totalRows != '')
{
$page = CEIL($startPos / $rowsPerPage);
$pageCount = $page + $numPages;
$PageNo = CEIL($startPos / $rowsPerPage ) ;
// echo ' Page No ' . $PageNo ;
FOR($i = 1,$pgCnt=1; $page <= $pageCount; $i = $i + $rowsPerPage)
{
IF ( $PageNo == $pgCnt )
{
$pageString .= ' <a href="'.$PHP_SELF.'?startPos='.$i.'&perPageDisplay='.$rowsPerPage.'" title="Page '.$pgCnt.'""><font color="red"><b>'.$pgCnt.'</b></font></a> ';
$pgCnt++;
}
ELSEIF ($i < $totalRows)
{
$pageString .= ' <a href="'.$PHP_SELF.'?startPos='.$i.'&perPageDisplay='.$rowsPerPage.'" title="Page '. $pgCnt.'"">'.$pgCnt.'</a> ';
$pgCnt++;
};
$page++;
};
}
$nextPosition = $startPos + $rowsPerPage;
IF($totalRows == '')
{
$pageString .= '<a href="'.$PHP_SELF.'?startPos='.$nextPosition.'&perPageDisplay='.$rowsPerPage.'" title="Next Page"><font color="blue" >Next </font></a> ';
}
ELSEIF($startPos < $totalRows )
{
IF ( $nextPosition < $totalRows )
{
$pageString .= '<a href="'.$PHP_SELF.'?startPos='.$nextPosition.'&perPageDisplay='.$rowsPerPage.'" title="Next Page"><font color="blue" title="Next Page">Next </font></a> ';
}
}
IF($startPos < $totalRows )
{
$next10Position = $startPos + $tenthPages ;
IF($next10Position < $totalRows )
{
$next10Position = $startPos + $tenthPages ;
$pageString .= '<a href="'.$PHP_SELF.'?startPos='.$next10Position .'&perPageDisplay='.$rowsPerPage.'" title="Next 10 Pages"><font color="red"> >></font></a>';
}
}
RETURN $pageString;
}
?>
|