2010-12-11 82 views
2

我正在阅读http://code.google.com/apis/maps/articles/phpsqlsearch.html以获取SQL/Math。我写了一个小小的PHP脚本,但没有得到任何结果。Php附近的地方脚本帮助

<?php 
$db_host = "localhost"; 
$db_username = "root"; 
$db_pass = ""; 
$db_name = "places"; 

mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql"); 
mysql_select_db("$db_name") or die ("no database"); 

$lat = "37"; 
$lon = "-122"; 
$radius = "25"; 
$sql = mysql_query("SELECT id, name, (3959 * acos(cos(radians('$lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$lon')) + sin(radians('$lat')) * sin(radians(lat)))) AS distance FROM markers HAVING distance < '$radius' ORDER BY distance LIMIT 0 , 20") or die("error"); 

$nearby_check = mysql_num_rows($sql); 
if ($nearby_check > 0) 
{ 
    while($row = mysql_fetch_array($sql)) 
    { 
     $name = $row["name"]; 
     echo $name . '<br />'; 
    } 
} 
else 
{ 
    echo 'No Places found nearby'; 
} 
?> 

数据库结构和数据与Google代码文章中的相同。

这就是我的PHP脚本。它出什么问题了?我想这可能是一个SQL问题。不太确定。这篇文章是从2008年1月份开始的,所以也许东西改变了?

+1

你什么错误? – 2010-12-12 00:06:34

+0

它只是没有找到附近的地方。不知道怎么回事。我用更多的信息更新了这篇文章。 – Keverw 2010-12-12 00:35:22

+0

嗯,不知道。你有没有尝试扩大半径?将它设置为2000以查看是否有任何内容出现? – 2010-12-12 00:50:38

回答

1

http://www.geonames.org/export/

使用geonames.org得到你想要的东西。那就是靠近地方。

该服务器从未关闭。我一直在检查这个很长一段时间不像http://webservicex.net

您可以在JavaScript以及PHP中使用它。

http://booking.com正在使用类似的服务显示酒店,机场等附近的酒店。

我一直在为我的一个项目使用此服务。

geonames提供了一个数据库转储,他们希望定期更新它。

你可以在他们的网站找到更多的信息。

http://www.geonames.org/export/web-services.html

http://forum.geonames.org/gforum/posts/list/499.page