3/5 (26 avis)
Snippet vu 119 249 fois - Téléchargée 34 fois
SELECT `ville`.`FULL_NAME_ND`, (6366*acos(cos(radians($LAT))*cos(radians(`ville`.`LAT`))*cos(radians(`ville`.`LONG`)-radians($LONG))+sin(radians($LAT))*sin(radians(`ville`.`LAT`)))) as Proximite from `ville` where `ville`.`CC1`='$pays' order by Proximite limit 1,5; explications (derrière --) --commande de sélection SELECT --nom complet de la ville `ville`.`FULL_NAME_ND`, --formule de calcul (optimisée) de la distance entre la ville d'origine ($LAT et $LONG) et la ville dans la base (`ville`.`LAT` et `LONG`) (6366*acos(cos(radians($LAT))*cos(radians(`ville`.`LAT`))*cos(radians(`ville`.`LONG`)-radians($LONG))+sin(radians($LAT))*sin(radians(`ville`.`LAT`)))) --on nomme le résultat "proximité" as Proximite --dans quelle table from `ville` --condition where --on sélectionne au moins le pays car ma base simplifiée contient quelques 3 500 000 villes du monde.. `ville`.`CC1`='$pays' --trie par distance de la plus proche à la plus éloignée order by Proximite --on limite le résultat à 5 villes pour accélérer la requete limit 1,5;
30 mai 2018 à 19:41
30 mai 2018 à 18:38
30 mai 2018 à 18:37
9 mai 2013 à 13:59
Si tu ne veux pas passer par une base de donnée, tu peux utiliser le webservice de CitySearch-API ( http://www.citysearch-api.com ) qui liste les pays, régions et départements Français ou Belges.
Ce webservice te permet aussi de récupérer les villes françaises en fonction des premières lettres recherchées, par exemple.
Cela t'évite ainsi d'utiliser une base de donnée ou d'augmenter la taille de ta base qui est limitée chez certains hébergeurs.
2 juil. 2010 à 16:35
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.