Код ниже, который я написал для поиска радиуса в пределах 50 миль от найденного почтового индекса. Как я могу изменить этот код, чтобы найти только ближайшее местонахождение клиники, а не список мест для клиник? Поэтому, если я набрал почтовый индекс для Денвера, штат Колорадо и мои офисы в основном в Нью-Йорке, ОАЭ и Огайо, как я могу добраться до ближайшего места, расположенного в Огайо?Найти ближайший почтовый индекс в PHP/MYSQL
/* RADIUS SEARCH - 50 MILES FROM THE ZIP CODE VARIABLE */
$zipcode=trim($_REQUEST['zipcode']);
//Find Out The Longitude & Latitude of Zipcode in existing database
$zcquery = "SELECT * FROM wp_nava5jxxyp_zipcodes WHERE zipcode = $zipcode";
$result = mysqli_query($dbc, $zcquery);
$row = mysqli_fetch_array($result);
$lat = $row['latitude'];
$long = $row['longitude'];
//Setting the Default Distance 50 Miles
// (Equation 1/69 = 0.0144927536231884 * 50 miles equals result below)
$miles = 0.7246376811594203;
/* Query To Search for all of the Zip Codes within the range */
$query = 'SELECT zipcode from wp_nava5jxxyp_zipcodes
WHERE latitude between ' . $lat . ' - ' . $miles . ' and ' . $lat . ' + ' . $miles . '
and longitude between ' . $long . ' - ' . $miles . ' and ' . $long . ' + ' . $miles;
$result = mysqli_query($dbc, $query);
//Put those zip codes into a variable array
$variabele = array();
while($row = mysqli_fetch_array($result))
{
if($row['zipcode'] != '')
$variabele[] = $row['zipcode'];
}
$zipcodelist = implode(', ', $variabele);
// Close Connection
mysqli_close($dbc);
//Query Database For Any Clinics that are included in zip code list
$args = array(
'posts_per_page' => 10,
'orderby' => 'post_title',
'order' => 'DESC',
'post_type' => 'clinics',
'meta_query' => array (
array (
'key' => 'cliniczipcode',
'value' => $zipcodelist,
'compare' => 'IN'
)
));
// the query
$the_query = new WP_Query($args);
Используйте гаверсинус формулы, https://developers.google.com/maps/articles/phpsqlsearch_v3. См. «Поиск мест с MySQL». – chris85
Если я LIMIT заявление Sql только 1, это даст мне ближайшее местоположение? – user2593040
'Limit' и' заказать' на расстоянии. – chris85