$distance = 50;
// On récupère les coordonnées de la ville selectionnée
$req = "SELECT ville_slug, ville_latitude_deg, ville_longitude_deg FROM villes_france_free WHERE ville_slug = '". ozan."'";
$resultat = mysql_query($req) or die(mysql_error());
$row = mysql_fetch_array($resultat);
$latitude = $row['ville_latitude_deg'];
$longitude = $row['ville_longitude_deg'];
// On récupère les coordonnés de toutes les villes pour calculer la distance
$req = "SELECT ville_slug, ville_longitude_deg, ville_latitude_deg FROM villes_france_free";
$resultat = mysql_query($req) or die(mysql_error());
while ($row = mysql_fetch_array($resultat)) {
$latitude2 = $row['ville_latitude_deg'];
$longitude2 = $row['ville_longitude_deg'];
$formule = "(6366*acos(cos(radians($latitude))*cos(radians($latitude2))*cos(radians($longitude2) -radians($longitude2))+sin(radians($latitude))*sin(radians($latitude2))))";
echo $formule.'<br><br>';
$requete = "SELECT ville_slug, ville_longitude_deg, ville_latitude_deg FROM villes_france_free WHERE $formule < '". $distance."'";
echo $requete.'<br><br>';
mysql_query ($requete) or die(mysql_error());
while ($row = mysql_fetch_array($resultat)) {
//echo $row['ville_slug'].'<br>';
}
}echo $formule.'<br><br>';
$requete = "SELECT ville_slug, ville_longitude_deg, ville_latitude_deg FROM villes_france_free WHERE $formule < '". $distance."'";
echo $requete.'<br><br>';
mysql_query ($requete) or die(mysql_error());
while ($row = mysql_fetch_array($resultat)) {
//echo $row['ville_slug'].'<br>';
}
Qu'est ce que tu cherches à faire ici ?$requete = "SELECT ville_slug, ville_longitude_deg, ville_latitude_deg as distance FROM villes_france_free WHERE $formule < '". $distance."'";
Et ds une autre table ou j'ai mes annonces en gros ( table: annonce )
$distance = 50;
// On récupère les coordonnées de la ville selectionnée
$req = "SELECT ville_slug, ville_latitude_deg, ville_longitude_deg FROM villes_france_free WHERE ville_slug = '". ozan."'";
$resultat = mysql_query($req) or die(mysql_error());
$row = mysql_fetch_array($resultat);
$latitude = $row['ville_latitude_deg'];
$longitude = $row['ville_longitude_deg'];
// On récupère les coordonnés de toutes les villes pour calculer la distance
$req = "SELECT ville_slug, ville_longitude_deg, ville_latitude_deg FROM villes_france_free";
$resultat = mysql_query($req) or die(mysql_error());
while ($row = mysql_fetch_array($resultat)) {
$latitude2 = $row['ville_latitude_deg'];
$longitude2 = $row['ville_longitude_deg'];
$formule = "(6366*acos(cos(radians($latitude))*cos(radians($latitude2))*cos(radians($longitude2) -radians($longitude2))+sin(radians($latitude))*sin(radians($latitude2))))";
echo $formule.'<br><br>';
$requete = "SELECT ville_slug, ville_longitude_deg, ville_latitude_deg as distance FROM villes_france_free WHERE $formule < '". $distance."'";
echo $requete.'<br><br>';
mysql_query ($requete) or die(mysql_error());
while ($row = mysql_fetch_array($resultat)) {
if ($formule < $distance) { // affiche la ville qui se trouve à moins de $distance km
echo $row['ville_slug'].'<br>';
}
}
}
Voici l'echo de ma requete:
SELECT ville_slug, ville_longitude_deg, ville_latitude_deg as distance FROM villes_france_free WHERE (6366*acos(cos(radians(46.3833))*cos(radians(46.3833))*cos(radians(4.91667) -radians(4.91667))+sin(radians(46.3833))*sin(radians(46.3833)))) < '50'
et le echo de $formule:
SELECT ville_slug, ville_longitude_deg, ville_latitude_deg as distance FROM villes_france_free WHERE (6366*acos(cos(radians(46.3833))*cos(radians(46.3833))*cos(radians(4.91667) -radians(4.91667))+sin(radians(46.3833))*sin(radians(46.3833)))) < '50'
$distance = 50;
// On récupère les coordonnées de la ville selectionnée
$req = "SELECT ville_slug, ville_latitude_deg, ville_longitude_deg FROM villes_france_free WHERE ville_slug = '". ozan."'";
$resultat = mysql_query($req) or die(mysql_error());
$row = mysql_fetch_array($resultat);
$latitude = $row['ville_latitude_deg'];
$longitude = $row['ville_longitude_deg'];
// On récupère les coordonnés de toutes les villes pour calculer la distance
$req = "SELECT ville_slug, ville_longitude_deg, ville_latitude_deg FROM villes_france_free";
$resultat = mysql_query($req) or die(mysql_error());
while ($row = mysql_fetch_array($resultat)) {
$latitude2 = $row['ville_latitude_deg'];
$longitude2 = $row['ville_longitude_deg'];
$formule = "(6366*acos(cos(radians($latitude))*cos(radians($latitude2))*cos(radians($longitude2) -radians($longitude2))+sin(radians($latitude))*sin(radians($latitude2))))";
if ($formule < $distance) { // affiche la ville qui se trouve à moins de $distance km
echo $row['ville_slug'].'<br>';
}
}
Ta 3eme requête était complètement inutile. Essaye de repasser ligne par ligne pour comprendre le fonctionnement de ce script.$distance = 20;
// On récupère les coordonnées de la ville selectionnée
$req = "SELECT ville_nom_simple, ville_latitude_deg, ville_longitude_deg FROM villes_france_free WHERE ville_nom_simple = '".amiens."'";
$resultat = mysql_query($req) or die(mysql_error());
$row = mysql_fetch_array($resultat);
$latitude = $row['ville_latitude_deg'];
$longitude = $row['ville_longitude_deg'];
echo $latitude.'<br>';
echo $longitude.'<br>';
// On récupère les coordonnés de toutes les villes pour calculer la distance
$req = "SELECT ville_nom_simple, ville_longitude_deg, ville_latitude_deg FROM villes_france_free";
$resultat = mysql_query($req) or die(mysql_error());
while ($row = mysql_fetch_array($resultat)) {
$latitude2 = $row['ville_latitude_deg'];
$longitude2 = $row['ville_longitude_deg'];
$formule = "(6366*acos(cos(radians($latitude))*cos(radians($latitude2))*cos(radians($longitude2) -radians($longitude2))+sin(radians($latitude))*sin(radians($latitude2))))";
// echo $req;
if ($formule < $distance) { // affiche la ville qui se trouve à moins de $distance km
echo $row['ville_nom_simple'].'<br>';
}
}
SELECT ville_nom_simple, ville_longitude_deg, ville_latitude_deg FROM villes_france_freeozan
SELECT ville_nom_simple, ville_longitude_deg, ville_latitude_deg FROM villes_france_freecormoranche sur saone
SELECT ville_nom_simple, ville_longitude_deg, ville_latitude_deg FROM villes_france_freeplagne
SELECT ville_nom_simple, ville_longitude_deg, ville_latitude_deg FROM villes_france_freetossiat
// ..... ca continue ...$formule = (6366*acos(cos(radians($latitude))*cos(radians($latitude2))*cos(radians($longitude2) -radians($longitude2))+sin(radians($latitude))*sin(radians($latitude2))));
Il te faut la valeur, pas l'expression du calcul