Page 1 of 1

Search Problrm

Posted: Thu Aug 24, 2006 7:18 am
by genista
Hi All,

I have a problrem with the following script not displaying the results, not only that but I have put in a line to print the query that is being run, but that does not work. When I hit submit the search returns nothing, not even an error:

Code: Select all

<html>
<form name="form" action="suppliersearch.php" method="get">
  <p>County: 
    <name="q" </td><td>
    <?php
    //$currentvalue0=$row['county'];
    
    $counties = array('Anglesey', 'Angus', 'Argyll', 'Avon', 'Ayrshire', 'Banffshire', 'Bedfordshire', 'Berkshire', 'Berwickshire', 'Borders', 'Buckinghamshire', 'Bute', 'Caithness', 'Cambridgeshire', 'Central Scotland', 'Cheshire', 'Clackmananshire', 'Cleveland', 'Clwyd', 'Cornwall', 'County Antrim', 'County Down', 'County Durham', 'County Fermanagh', 'County Londonderry', 'County Tyrone', 'Cumbria', 'Denbighshire', 'Derbyshire', 'Devon', 'Dorset', 'Dumfries and Galloway', 'Dunbartonshire', 'Durham', 'Dyfed', 'East Ayrshire', 'East Lothian', 'East Sussex', 'East Yorkshire', 'Edinburgh', 'Essex', 'Fife', 'Glamorgan', 'Gloucestershire', 'Grampian', 'Greater London', 'Greater Manchester', 'Guernsey', 'Gwent', 'Gwynedd', 'Hampshire', 'Herefordshire', 'Hertfordshire', 'Highlands and Islands', 'Humberside', 'Inverness-shire', 'Isle of Arran', 'Isle of Man', 'Isle of Skye', 'Isle of Wight', 'Jersey', 'Kent', 'Lanarkshire', 'Lancashire', 'Leicestershire', 'Lincolnshire', 'Lochaber', 'London', 'Londonderry', 'Lothian', 'Merseyside', 'Middlesex', 'Moray', 'Nottinghamshire', 'Orkneys', 'Outer Hebrides', 'Oxfordshire', 'Peeblesshire', 'Perthshire', 'Powys', 'Shropshire', 'Somerset', 'South Yorkshire', 'Staffordshire', 'Stirlingshire', 'Strathclyde', 'Suffolk', 'Surrey', 'Sutherland', 'Swansea', 'Tayside', 'Tyne and Wear', 'Warwickshire', 'West Lothian', 'West Midlands', 'West Sussex', 'West Yorkshire', 'Wester Ross', 'Wiltshire', 'Worcestershire'); 
echo '<select name="county"><option value="01" />Aberdeenshire'; 
for ($i=1; $i <= sizeof($counties); $i++) 
{ 
  
  $lz = strlen($i) == 1 ? '0'.$i : $i; 
echo '<option value="'.$lz.'" selected />'.$counties[$i-1]; 
} 
echo '</select>'; 
    ?>
    </p>
  <input type="submit" name="Submit" value="Search" />
</form>
<html>

<?php
// Get the search variable from URL
  $var = @$_GET['q'] ;
  $county = trim($var); //trim whitespace from the stored variable

// rows to return
$limit=10; 

// check for an empty string and display a message.
if ($county == "")
  {
  echo "<p>Please enter a search...</p>";
  exit;
  }

// check for a search parameter
if (!isset($var))
  {
  echo "<p>Please enter a search</p>";
  exit;
  }

$query = "select county, supplierid, username from suppliers where county =\"$trimmed\" order by username"; 
print $query;
$numresults=mysql_query($query) or die(mysql_error());  
$numrows=mysql_num_rows($numresults); 

if ($numrows == 0)
  {
  echo "<h4>Results</h4>";
  echo "<p>Sorry, your search: "" . $county . "" returned zero results</p>";

 }

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

// get results
// line 60
  $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)) {
  $title = $row ["username"];
  $supplier = $row ["supplierid"];
  echo "<p>$count.)&nbsp; <a href=\"supplierinfo.php?id=$supplier\">$title</a></p>" ;

  $count++ ;
  }

$currPage = (($s/$limit) + 1);
//80
//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 "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\"><< 
  Prev 10</a>&nbsp&nbsp;";

Any help would be SO appreciated!

Posted: Thu Aug 24, 2006 7:41 am
by malcolmboston
try turning on error_reporting first:

Code: Select all

<?php
error_reporting (E_ALL);
at the top of your script

Posted: Thu Aug 24, 2006 7:55 am
by paladaxar
One odd thing i noticed in your syntax: you use \"$var\". Why do that instead of simply '$var'. (single quotes that dont need to be escaped). I dont know if that will solve your problem or not, but it is something that I noticed while skimming your code.

Posted: Thu Aug 24, 2006 8:03 am
by genista
Ok have changed both of those and I am not getting any errors....

Posted: Thu Aug 24, 2006 8:59 am
by genista
To me it seems I have an issue with the query not actually being executed, and it may possibly be due to the 'trimmed' part..