Im having problems with the code below, I can get the page to post limited number of results, I can even get it to find all the results for my search, but when I hit next it states "no records found"...
How does one make a search form that will run a script, this script must show the results of the form in ID desc order with a limit of 10 per page and a next and back feature..
Copy of my Search page form post
<form name=searchFormMaker method=post action="results.php">
This is the PHP im using to post the results (it was the one that worked best so far, from all the ones i have found here.)
<?
$this_document = $_SERVER['SCRIPT_NAME'];
$db_addr = 'localhost'; // address of MySQL server.
$db_user = ''; // Username to access server.
$db_pass = ''; // Password access server.
$db_name = '***'; // Name of database to connect to.
$connect = @mysql_connect("$db_addr", "$db_user", "$db_pass");
$page = $GET['page'];
$limit = $GET['limit'];
if (!($connect)) // If no connect, error and exit().
{
echo("<p>Unable to connect to the database server.</p>");
exit();
}
if (!(@mysql_select_db($db_name))) // If can't connect to database, error and exit().
{
echo("<p>Unable to locate the $db_name database.</p>");
exit();
}
if (!($limit)){
$limit = 10; // Default results per-page.
}
if ( !$page or $page < 0 ) {
$page = 0; // Default page value.
}
$numresults = mysql_query("SELECT * from ### WHERE cs_positionstate LIKE '$cs_positionstate' AND cs_fullpart LIKE '$cs_fullpart' AND (cs_status = '$cs_status' or cs_status = 'both')"); // the query.
$numrows = mysql_num_rows($numresults); // Number of rows returned from above query.
if ($numrows == 0){
echo("No results found matching your query"); // modify the "Not Found" error for your needs.
exit();
}
$pages = intval($numrows/$limit); // Number of results pages.
// $pages now contains int of pages, unless there is a remainder from division.
if ($numrows % $limit) {
$pages++; // has remainder so add one page
}
$current = intval($page/$limit) + 1; // Current page number.
if (($pages < 1)) {
$total = 1; // If $pages is less than one, total pages is 1.
} else {
$total = $pages; // Else total pages is $pages value.
}
$first = $page + 1; // The first result.
if (!((($page + $limit) / $limit) >= $pages) && $pages != 1) {
$last = $page + $limit; //If not last results page, last result equals $page plus $limit.
} else {
$last = $numrows; // If last results page, last result equals total number of results.
}
//escape from PHP mode.
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellpadding="2">
<!--DWLayoutTable-->
<tr>
<td width="323" align="left"><font
face="Arial, Helvetica, sans-serif"><font size="1">Results
per-page: <a href="<?=$this_document?>?query=<?=$query?>&page=<?=$page?>&limit=5">5</a>
| <a href="<?=$this_document?>?query=<?=$query?>&page=<?=$page?>&limit=10">10</a>
| <a href="<?=$this_document?>?query=<?=$query?>&page=<?=$page?>&limit=20">20</a>
| <a href="<?=$this_document?>?query=<?=$query?>&page=<?=$page?>&limit=50">50</a></font>
</font></td>
<td colspan="2" align="left"><font
size="2" face="Arial, Helvetica, sans-serif"> </font></td>
</tr>
<tr>
<td align="left"><font size="2" face="Arial, Helvetica, sans-serif">Showing
Results <b>
<?=$first?>
</b> - <b>
<?=$last?>
</b> of <b>
<?=$numrows?>
</b></font></td>
<td width="324" align="left"><font size="2" face="Arial, Helvetica, sans-serif">Page
<b>
<?=$current?>
</b> of <b>
<?=$total?>
</b></font></td>
<td width="324" align="left"><font
size="2" face="Arial, Helvetica, sans-serif"> </font></td>
</tr>
<tr>
<td colspan="3" align="left" valign="top"><font
size="2" face="Arial, Helvetica, sans-serif"> </font>
<div align="left"><font size="2" face="Arial, Helvetica, sans-serif"></font></div>
<font size="2" face="Arial, Helvetica, sans-serif">
<?
//$limitnum = 15;
if ($page != 0) { // Don't show back link if current page is first page.
$back_page = $page - $limit;
echo("<a href=\"$this_document?query=$query&page=$back_page&limit=$limit\">back</a>\n");
}
for ($i=1; $i <= $pages; $i++) // loop through each page and give link to it.
{
$ppage = $limit*($i - 1);
if ($ppage == $page) {
echo("<b>$i</b>\n");
} // If current page don't give link, just text.
//elseif ($ppage < $page - $limitnum || $ppage > $page + $limitnum){}
else {
echo("<a href=\"$this_document?query=$query&page=$ppage&limit=$limit\">$i</a>\n");
}
}
if (!((($page+$limit) / $limit) >= $pages) &&
$pages != 1) { // If last page don't give next link.
$next_page = $page + $limit;
echo(" <a href=\"$this_document?query=$query&page=$next_page&limit=$limit\">next</a>");
}
?>
</font></td>
</tr>
<tr>
<td colspan="3" align="left"><!--DWLayoutEmptyCell--> </td>
</tr>
<tr>
<td colspan="3" align="left">
<?
//Go back into PHP mode.
// Now we can display results
$results = mysql_query("SELECT * from ### WHERE cs_positionstate LIKE '$cs_positionstate' AND cs_fullpart LIKE '$cs_fullpart' AND (cs_status = '$cs_status' or cs_status = 'both') ORDER BY cs_id DESC LIMIT $page, $limit");
echo "<TR bgcolor=\"#4f5c38\">
<TD align=\"center\"><font color=\"#CCCC66\"><strong>Domain Name</strong></font></TD>
<TD align=\"center\"><font color=\"#CCCC66\"><strong>Date Submitted</strong></font></TD>
<TD align=\"center\"><font color=\"#CCCC66\"><strong>Asking Price</strong></font></TD></TR>\n";
for($i = 0; $i < $limit; $i++){
for ($count = 1; $row = mysql_fetch_assoc ($results);++$count) {
if ($count & 1) {
$color = "#9aa486";
$font = "white";
} else {
$color = "#c8cfc6";
$font = "black";
}
$printthis = "<tr>
<td bgcolor=\"$color\"><font color=\"$font\">$row[cs_id]</font></td>
<td bgcolor=\"$color\"><font color=\"$font\">$row[cs_post]</font></td>
<td bgcolor=\"$color\"><font color=\"$font\">$row[cs_jobtitle]</font></td>
</tr>";
print $printthis;
}
}
?>
</td>
</tr>
</table>
</body>
</html>