我已经在网上搜索了很多,以找到解决我的问题,但我仍然无法弄清楚。使用经度和纬度查找使用MySQL最接近的10个城市?
我有一个非常简单的数据库ID,城市名称,纬度,经度和city_info。当有人进入城市页面时,想要显示附近的10个城市。
我怎样才能计算这与MySQL并返回与PHP?
我在这个网站上看到了很多建议,但是这些工作都不知道。
我试过没有成功。我没有得到任何结果。
<?php
$slatitude = 43.2141341;
$slongitude = 64.4368684;
$miles = 200;
//connect
$query = "SELECT *,
(3959 * acos(cos(radians('$slatitude')) *
cos(radians(latitude)) *
cos(radians(longitude) -
radians('$slongitude')) +
sin(radians('$slatitude')) *
sin(radians(latitude))))
AS distance FROM cities HAVING distance < '$miles' ORDER BY distance ASC LIMIT 0, 10";
$query = mysql_query($query);
$numrows = mysql_num_rows($query);
if ($numrows > 0){
while ($row = mysql_fetch_assoc($query)){
$id = $row['id'];
$cityname = $row['cityname'];
$latitude = $row['latitude'];
$longitude = $row['longitude'];
echo "$cityname<br />";
}}
?>`
您是否*在您的数据库中有200英里以内的城市? – BenOfTheNorth
你没有'HAVING'子句的结果吗?你有错误信息吗? –
我的数据库里绝对有200英里以内的城市。我根本没有得到任何错误。 –