Search Page pagination trouble
Posted: Wed Mar 18, 2009 4:59 am
Hi, I have this code, but the pagination doenst work, I've been working on this for ages and cant figure out what the problem is. I'v posted on some other web forums but they didnt help so now Im desperate, so Im posting all of the code with the webpage url, I wouldnt normally do this but Im totally stuck.
What happens is when you click the 'next' button it just refreshes the page but doesnt go to the next set of results, someone on FB suggested it had something to do with the $s variable but I'm a real beginner and struggling as to what to do
Im dyslexic so I find code quite dificalt but Im not gonna let it stop me, so please be kind.
Anyway, my page is here http://www.abherbz.com/test/search.php
Here is my code:
Many thanks for any help
What happens is when you click the 'next' button it just refreshes the page but doesnt go to the next set of results, someone on FB suggested it had something to do with the $s variable but I'm a real beginner and struggling as to what to do
Im dyslexic so I find code quite dificalt but Im not gonna let it stop me, so please be kind.
Anyway, my page is here http://www.abherbz.com/test/search.php
Here is my code:
Code: Select all
<form name="form" action="<?php echo $PHP_SELF; ?>" method="get">
<input name="q" type="text" value="" />
<input type="submit" name="Search" id="Search" value="Search" />
</form>
<?php
// Get the search variable from URL
$var = @$_GET['q'] ;
$trimmed = trim($var); //trim whitespace from the stored variable
// rows to return
$limit=10;
// check for an empty string and display a message.
if ($trimmed == "")
{
echo "<p>Please enter a search...</p>";
exit;
}
// check for a search parameter
if (!isset($var))
{
echo "<p>We dont seem to have a search parameter!</p>";
exit;
}
//specify database ** EDIT REQUIRED HERE **
mysql_select_db($database_abherbzCon) or die("Unable to select database"); //select which database we're using
// Build SQL Query
$query = "select * from herbs where herbName like \"%$trimmed%\" OR herbLatinName like \"%$trimmed%\"
order by herbName"; // EDIT HERE and specify your table and field names for the SQL query
$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);
// If we have no results, offer a google search as an alternative
if ($numrows == 0)
{
echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>";
// google
echo "<p><a href=\"http://www.google.com/search?q="
. $trimmed . "\" target=\"_blank\" title=\"Look up
" . $trimmed . " on Google\">Click here</a> to try the
search on google</p>";
}
// next determine if s has been passed to script, if not use 0
if (empty($s)) {
$s=0;
}
// get results
$query .= " limit $s,$limit";
$result = mysql_query($query) or die("Couldn't execute query");
// display what the person searched for
echo "<b>Herb results for: " " . $var . "</b> " <br /><br />";
// begin to show results set
$count = 1 + $s ;
// now you can display the results returned
while ($row= mysql_fetch_array($result)) {
$herbName = $row["herbName"];
$herbLatinName = $row["herbLatinName"];
$herbId = $row["id"];
print "";
echo "$count.) $title" ; // counts records looks a bit <span style='color:blue' title='I'm naughty, are you naughty?'>smurf</span>
print "<a href=\"herbz.php?herbId=" . $herbId . "\" style=\"text-transform:capitalize;\" >" . $herbName . " - " . $herbLatinName . "</a> <br />" ;
$count++ ;
}
$currPage = (($s/$limit) + 1);
//break before paging
echo "<br />";
// next we need to do the links to other results
if ($s>=1) { // bypass PREV link if s is 0
$prevs=($s-$limit);
print " <a href=\"$PHP_SELF?s=$prevs&q=$var\"><<
Prev 10</a>  ";
}
// calculate number of pages needing links
$pages=intval($numrows/$limit);
// $pages now contains int of pages needed unless there is a remainder from division
if ($numrows%$limit) {
// has remainder so add one page
$pages++;
}
// check to see if last page
if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {
// not last page so give NEXT link
$news=$s+$limit;
echo "<a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 >></a>";
}
$a = $s + ($limit) ;
if ($a > $numrows) { $a = $numrows ; }
$b = $s + 1 ;
echo "<p>Showing results $b to $a of $numrows</p>";
?>