At the beginning of the page I have the class.
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;
}
}
Farther down the document I add other code to reference the class
//****Start Paging Code****//
// get the pager input values
$page = $_GET['page'];
$limit = 10;
$result = mysql_query("select count(*) from tBRSfeed WHERE $whereclause");
$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;
//****End Paging Code Part 1****//
//$rst=Query("SELECT * FROM tBRSfeed WHERE $whereclause ORDER BY town ASC");
//$total_results = mysql_num_rows($rst);
//**** Pager Code 2 ****//
$query = "SELECT * FROM tBRSfeed WHERE $whereclause ORDER BY town ASC LIMIT $offset, $limit";
$result = mysql_query($query);
//**** End Pager Code 2 ****//
And then this for the page navigation.
<?php
//**** Pager Code 3 ****//
// output paging system (could also do it before we output the page content)
if ($page == 1) // this is the first page - there is no previous page
echo "Previous";
else // not the first page, link to the previous page
echo "<a href=\"mls_search_results_dev.php?page=" . ($page - 1) . "\">Previous</a>";
for ($i = 1; $i <= $pager->numPages; $i++) {
echo " | ";
if ($i == $pager->page)
echo "Page $i";
else
echo "<a href=\"mls_search_results_dev.php?page=$i\">Page $i</a>";
}
if ($page == $pager->numPages) // this is the last page - there is no next page
echo "Next";
else // not the last page, link to the next page
echo "<a href=\"mls_search_results_dev.php?page=" . ($page + 1) . "\">Next</a>";
//**** Pager Code 3 Ends****//
?>