Jump to content

PHP Search keeps returning the same page


m2e

Recommended Posts

Really hoping someone can help me, cos I can't seem to figure this out!

 

Ok - so I am running a search on a database, showing the results over x pages (10 results to a page)

However, my link to go onto the next search page does not work. It just reloads the same page i.e. does nothing.

I think I'm not correctly passing the s variable, but I also think I have confused myself!!

 

Hoping I can be set straight on this!

<?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 by clicking here</p>";
  exit;
  }

// check for a search parameter
if (!isset($var))
  {
  echo "<p>We dont seem to have a search parameter!</p>";
  exit;
  }

//connect to your database ** EDIT REQUIRED HERE **
mysql_connect("192.168.140.18", "u10149947", "jpaero1"); //(host, username, password)

//specify database ** EDIT REQUIRED HERE **
mysql_select_db("u10149947") or die("Unable to select database"); //select which database we're using


// Build SQL Query  
$query = "select Part_Number, Part_Condition_Code, Description, Stock_Level, Unit_of_Measure  from jpaero_stocksearch where Part_Number like \"%$trimmed%\"  
  order by Part_Number"; // 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 "<h4>Results</h4>";
  echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>";

// google
echo "<p><a href=\"http://www.jpaero-com.demonweb.co.uk/rfq.php/search?q=" 
  . $trimmed . "\" target=\"_blank\" title=\"Look up 
  " . $trimmed . " on Google\">Click here</a> to try another search</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 "<p>You searched for: "" . $var . ""</p>";

// begin to show results set
echo "Results";
$count = 1 + $s ;

// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
  
  ?>
                  </p>
                  <table width="546" border="0" cellpadding="0" bordercolor="#000000" bgcolor="#FFFFFF">
                    <tr>
                      <td width="86" bgcolor="#000066"><span class="style16 style14 style12"><strong>Part Number</strong></span></td>
                      <td width="83" bgcolor="#000066"><span class="style16 style14 style12"><strong>Part<br /> 
                      Condition <br />
                      Code</strong></span></td>
                      <td width="152" bgcolor="#000066"><span class="style16 style14 style12"><strong>Description</strong></span></td>
                      <td width="75" bgcolor="#000066"><span class="style16 style14 style12"><strong>Stock Level</strong></span></td>
                      <td width="98" bgcolor="#000066"><span class="style16 style14 style12"><strong>Unit of Measure</strong></span></td>
                    </tr>
                    <tr>
                      <td><span class="style12 style13"><? echo $row["Part_Number"]; ?></span></td>
                      <td><span class="style13"><? echo $row["Part_Condition_Code"]; ?></span></td>
                      <td><span class="style13"><? echo $row["Description"]; ?></a></span></td>
                      <td><span class="style13"><? echo $row ["Stock_Level"]; ?></span></td>
                      <br />
				  <td><span class="style13"><? echo $row ["Unit_of_Measure"]; ?></span></td>
                    </tr>
                  </table>
                  
                  <? } 
  
  

$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>&nbsp ";
  }

// 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>";
  
?>

 

// next determine if s has been passed to script, if not use 0
  if (empty($s)) {
  $s=0;
  }

 

You have never assigned a value to $s, so it is always starting at zero.  You need to retrieve the value from the $_GET array like you did with the 'p' parameter.  You could do something like this:

// next determine if s has been passed to script, if not use 0
if (empty($_GET['s'])) {
  $s=0;
} else {
  $s = intval($_GET['s']);
}

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.