J'ai vu tous les exemples et voici ce que j'ai obtenu jusqu'à présent.Trouver tous les enregistrements dans la base de données qui sont dans une certaine distance d'un ensemble de points lat et long
ma table est simple:
écoles (nom de la table) - School_ID - lat - longue - comté - extrainfo
voici mon code:
<?php
$con = mysql_connect("xxx","xxx","xxx");
if (!$con) {
die('Could not connect: ' . mysql_error());
} else {}
mysql_select_db("xxx", $con);
$latitude = "36.265541";
$longitude = "-119.207153";
$distance = "1"; //miles
$qry = "SELECT *, (3958.75 * ACOS(SIN(" . $latitude . "/57.2958)*SIN(lat/57.2958)+COS(" . $latitude . "/57.2958)*COS(lat/57.2958)*COS(long/57.2958 - " . $longitude . "/57.2958))) as distance FROM schools WHERE (3958.75 * ACOS(SIN(" . $latitude . "/57.2958)*SIN(lat/57.2958)+COS(" . $latitude . "/57.2958)*COS(lat/57.2958)*COS(long/57.2958 - " . $longitude . "/57.2958))) <= " . $distance;
$results = mysql_query($qry);
if (mysql_num_rows($results) > 0) {
while($row = mysql_fetch_assoc($results)) {
print_r($row);
}
} else {}
mysql_close($con);
?>
mais je obtenir cette erreur lorsque je tente de l'exécuter:
Attention: mysql_num_rows(): l'argument fourni n'est pas une ressource de résultat MySQL valide
Cela signifie que votre requête a échoué. Imprimez la chaîne de requête et essayez de l'exécuter dans la ligne de commande. Cela vous donnera une image plus détaillée de l'échec. – Calvin