Reputation points for anyone who helps. There's something wrong with my pagination script (below). It displays page navigation links like this: 1 2 3 > >> The problem is, even if no results are returned from the database, the same navigation links are displayed: 1 2 3 > >> If 2 or 3 are clicked, they lead to blank pages. I've played with $range but the problem remains. When $range is changed to 0, the navigation links display like the following, even if no results are returned: 1 > >> When ">" or ">>" are clicked, they go to blank pages. Anyone know how I can fix this? If there are no results, I don't want links to blank pages. <?php // database connection info $conn = mysql_connect('localhost','root') or trigger_error("SQL", E_USER_ERROR); $db = mysql_select_db('ctyi', $conn) or trigger_error("SQL", E_USER_ERROR); // find out how many rows are in the table $sql = "SELECT COUNT(*) FROM table"; $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); $r = mysql_fetch_row($result); $numrows = $r[0]; // number of rows to show per page $rowsperpage = 5; // find out total pages $totalpages = ceil($numrows / $rowsperpage); // get the current page or set a default if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) { // cast var as int $currentpage = (int) $_GET['currentpage']; } else { // default page num $currentpage = 1; } // end if // if current page is greater than total pages... if ($currentpage > $totalpages) { // set current page to last page $currentpage = $totalpages; } // end if // if current page is less than first page... if ($currentpage < 1) { // set current page to first page $currentpage = 1; } // end if // the offset of the list, based on current page $offset = ($currentpage - 1) * $rowsperpage; // get the info from the db $sql = "SELECT * FROM wherever LIMIT $offset, $rowsperpage"; $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); if(mysql_num_rows($result) < 1) { echo "<p>No results.</p>"; } else { while($row = mysql_fetch_assoc($result)) { // echo data echo "Results "; } // end while } // end else /****** build the pagination links ******/ // if not on page 1, show back links if ($currentpage > 1) { // show << link to go back to page 1 echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> "; // get previous page num $prevpage = $currentpage - 1; // show < link to go back to 1 page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> "; } // end if // range of num links to show $range = 3; // loop to show links to range of pages around current page for ($x = (($currentpage - $range) - 1); $x < (($currentpage + $range) + 1); $x++) { // if it's a valid page number... if (($x > 0) && ($x <= $totalpages)) { // if we're on current page... if ($x == $currentpage) { // 'highlight' it but don't make a link echo " [$x] "; // if not current page... } else { // make it a link echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> "; } // end else } // end if } // end for // if not on last page, show forward and last page links if ($currentpage != $totalpages) { // get next page $nextpage = $currentpage + 1; // echo forward link for next page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> "; // echo forward link for lastpage echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> "; } // end if /****** end build pagination links ******/ ?> PHP:
db login and pass statements for db are missing this programming is not connecting to the db Regards Alex
My connection to the database is fine. My question concerned the pagination links. Did you read my question?