m2e Posted October 13, 2010 Share Posted October 13, 2010 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>  "; } // 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>"; ?> Link to comment https://forums.phpfreaks.com/topic/215742-php-search-keeps-returning-the-same-page/ Share on other sites More sharing options...
DavidAM Posted October 13, 2010 Share Posted October 13, 2010 // 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']); } Link to comment https://forums.phpfreaks.com/topic/215742-php-search-keeps-returning-the-same-page/#findComment-1121670 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.