搜索城市国家邮政编码
|
所以我已经有了每个城市,州,邮编的位置的数据库。
我目前正在研究如何进行搜索并获取x英里以外的邮政编码的结果,并且遇到了一些麻烦。
我成功地进行了搜索,可以输入邮政编码,因为它是预定义的值。但是我对城市,州的结果感到困惑。当前,仅当您输入城市名称ex \“ Chicago \”时,此功能才有效。但是,如果您输入\“ Chicago,IL \”,则无效。
这是搜索表单$ _GET的代码searchval
请帮忙!
$searchval = $mysql->escape_data($_GET[\'searchval\']);
if (!empty($searchval))
{
if(preg_match(\"~\\d{5}~\", $searchval)) {
$zip = $searchval;
}
else {
$city = $searchval;
}
} else
{
$error .= \"<div id=\'Error\'>Please enter zip</div>\";
$zip = false;
}
以下是实际使用$ zip或$ city并获取周围邮政编码的代码。如果您输入邮政编码,则说明该邮政编码成功运行。如果仅输入城市名称,则它可以成功运行。如果输入\“ IL,Chicago \”,它将不起作用。
<?php
//if user entered a city ex. \"Chicago\"
if(isset($city)) {
$q = \'SELECT City, State, ZipCode FROM zipcodes WHERE City like \"\'. $city .\'%\" ORDER BY ZipCode ASC Limit 0,10\';
$result = $mysql->query($q);
$row = mysqli_fetch_array($result);
$zip = $row[2];
if(mysqli_num_rows($result) != 1) {
echo\"Did you mean...<br />\";
while($row = mysqli_fetch_array($result)) {
echo \"<a href=\'\" .$_SERVER[\'PHP_SELF\'] . \"?searchval=\".$row[2].\"&miles=\".$miles.\"\'>\" . $row[0] . \" \" . $row[1] . \" \" . $row[2] . \"</a><br />\";
}
}
}
$zcr = new ZipCodesRange($mysql,$zip,$miles);
$zcr->setNewOrigin($zip);
//if user entered a zip code ex. \"08026\"
if($zcr->validateZipCode($zip)) {
$citystate=$zcr->getCityState($zip);
echo \"Zip Codes Within \" . $miles .\" miles of \" . $citystate[0] . \", \" . $citystate[1] . \" \" . $zip;
}
$zcr->setZipCodesInRange();
$zipArray = $zcr->getZipCodesInRange();
asort($zipArray);
$z = implode(\",\", array_keys($zipArray));
$q = \"SELECT * FROM \" . TBL_PUBS . \" WHERE zip IN ($z) AND( status = \'Pending\' OR status = \'Active\' )\";
$result = $mysql->query($q);
while ($row = $result->fetch_object()) {
$lonlat=$zcr->getLonLat($row->zip);
$distance = $zcr->calculateDistance($lonlat[1], $lonlat[0], $zip);
?>
没有找到相关结果
已邀请:
1 个回复
亨尖玛次酥