This is what I did to break results down into pages:
Use this to determine variables:
<?
// how many rows to show per page
$rowsPerPage = 5;
// by default we show first page
$pageNum = 1;
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
$itemcount = 0;
?>
Add this to your $query:
" LIMIT $offset, $rowsPerPage"
Put this where you want the numbers / previous + next to appear.
This will produce Previous, next links, and also page 1 of ...:
// how many rows we have in database
$query = "SELECT COUNT(id) AS numrows FROM author WHERE name LIKE '$sort%' ORDER BY name";
$result = mysql_query($query) or die ("$Query failed: ".mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
$self = $_SERVER['PHP_SELF'];
// creating 'previous' and 'next' link
// plus 'first page' and 'last page' link
// print 'previous' link only if we're not
// on page one
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page&id=$id\">[Prev]</a> ";
$first = " <a href=\"$self?page=1&id=$id\">[First Page]</a> ";
}
else
{
$prev = ' [Prev] '; // we're on page one, don't enable 'previous' link
$first = ' [First Page] '; // nor 'first page' link
}
// print 'next' link only if we're not
// on the last page
if ($pageNum < $maxPage)
{
$where1 = str_replace( " \ " , "" , $where1);
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page&id=$id\">[Next]</a> ";
$last = " <a href=\"$self?page=$maxPage&id=$id\">[Last Page]</a> ";
}
else
{
$next = ' [Next] '; // we're on the last page, don't enable 'next' link
$last = ' [Last Page] '; // nor 'last page' link
}
// print the page navigation link
echo $first . $prev . " Showing page <strong>$pageNum</strong> of <strong>$maxPage</strong> pages " . $next . $last;
?>