2010-12-11 29 views
2

Je lisais http://code.google.com/apis/maps/articles/phpsqlsearch.html pour obtenir le SQL/Math. J'ai écrit un petit script php mais je n'obtiens aucun résultat.Php endroits à proximité script aide

<?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'; 
} 
?> 

La structure et les données de la base de données sont les mêmes que dans l'article de code Google.

C'est mon script PHP. Qu'est ce qui ne va pas avec ça? Je pense que cela pourrait être un problème SQL. Pas vraiment sûr. Cet article date de janvier 2008, alors peut-être que les choses ont changé?

+1

Quelles erreurs obtenez-vous? –

+0

Il est juste ne pas trouver des endroits à proximité. Je ne suis pas sûr de quoi. J'ai mis à jour le post avec un peu plus d'infos. – Keverw

+0

Hmm, aucune idée. Avez-vous essayé d'étendre le rayon? Réglez-le à 2000 juste pour voir si quelque chose se présente? –

Répondre

1

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

Utilisez geonames.org pour obtenir ce que vous voulez. c'est trouver près par endroits.

Ce serveur n'a jamais été arrêté. Je vérifie cela depuis longtemps contrairement à http://webservicex.net.

Vous pouvez l'utiliser en javascript ainsi qu'en PHP.

http://booking.com utilise un service comme celui-ci pour afficher les hôtels, les aéroports, etc. à proximité d'un hôtel.

J'ai utilisé ce service pour l'un de mes projets. Geonames fournit un vidage de base de données et ils mettent à jour périodiquement j'espère.

Vous pouvez trouver plus d'informations sur leur site.

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

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