Hi,
I have a script that searches for suppliers in a given county, and I have been doing some work to get the numeric value for the county to be returned as the name of the county, ie insetad of returning '01' it returns Aberdeenshire.
As this things stand the following code will return the county name but wont return any results despite them being in the database:
<html>
<title><?php print $title ?></title>
<form name="form" action="<?=$_SERVER["PHP_SELF"]?>" method="get">
<p>County:
<name="county">
<?php
//$currentvalue0=$row['county'];
$counties = array(1=>'Aberdeenshire', '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" />Please Select a County';
/*for ($i=1; $i <= sizeof($counties); $i++)
{ */
foreach($counties as $_key => $_county)
{
echo '<option value="'.sprintf("%03d",$_key).'"/>'.$_county.'</option>';
//echo '<option value="'.($_key < 0 ? '0'.$_key : $_key).'"/>'.$_county.'</option>';
}
//}
/* $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
$var = $counties[(int)$_GET['county']] ;
//$county = trim($var); //trim whitespace from the stored variable
$county = trim( $counties[ intval($_GET['county']) ] );
//$var= $county;
// rows to return
$limit=10;
// check for an empty string and display a message.
if ($var == "")
{
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, area_covered1, area_covered2, area_covered3, supplierid, username from suppliers where county =\"$county\" order by username"; */
$query = "select county
, area_covered1
, area_covered2
, area_covered3
, supplierid
, username
from suppliers
where '$county' in
( county
, area_covered1
, area_covered2
, area_covered3 )
order
by username";
$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: "" . /*$counties[$_GET['county']]*/$var . "" 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.) <a href=\"supplierinfo.php?id=$supplier\">$title</a></p>" ;
I believe it may have something to do with the following lines:
$var = $counties[(int)$_GET['county']] ;
$county = trim( $counties[ intval($_GET['county']) ] );
Any ideas?
Thanks
G