我的表'store'中有4个colums - id,store_name,lat,lng。我希望显示半径为30英里的所有结果。我明白了:
$lat = '25.7742644';
$lng = '-80.1936558';
$miles = 30;
$query = mysql_query("SELECT *,
( 3959 * acos( cos( radians($lat) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians($lng) )
+ sin( radians($lat) )
* sin( radians( lat ) ) ) ) AS distance
FROM stores
HAVING distance < $miles
ORDER BY distance
LIMIT 0, 20 ");
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)) {
echo $store_name;
}
但是当我启动脚本时,我得到“查询为空”?
答案 0 :(得分:3)
$query = mysql_query("SELECT *, ...")
^^^^^^ ^^^^^^^^^^^
$result = mysql_query($query) or die(mysql_error());
^^^^^^^^^^^ ^^^^^^
摆脱其中一个mysql_query
。
答案 1 :(得分:0)
试试这个:
<?php
$lng = '-80.1936558';
$lat = '25.7742644';
$miles = 30;
$query = "SELECT *,
( 3959 * acos( cos( radians('$lat') ) *
cos( radians( latitude ) ) *
cos( radians( lnggitude ) -
radians('$lng') ) +
sin( radians('$lat') ) *
sin( radians( latitude ) ) ) )
AS distance FROM yourtable HAVING distance < '$miles' ORDER BY distance ASC LIMIT 0, 20";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){
echo $row["store_name"] . "<br />";
}
?>