juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 2008
-
8 mai 2006 à 20:13
juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 2008
-
8 mai 2006 à 23:13
Bonjour,
Etant donner que je ne sais pas où posser ma question, et qu'elle a un rapport avec les requettes SQL (MySQL) je la posse ici, en esperons qu'ont puissent m'aider.
Je developpe dans mon coin un site de rencontre, les membres entre leurs code postal et selectionne le pays, une tache cron va recuperer les coordonées GPS (Lattitude/logitude) sur le site tageo.com.
J'obtient par exemple (pour Paris):
Latitude : 48.86
Longitude : 2.33
Ces deux valeurs sont stoquer dans deux champs `lat` et `lon` .
Je souhaiterais affiner les resultats par proximité des membres, je stoque dans une session bien a part la latitude & longitude de la residence du membre.
Je voudrais savoir si quelqu'un pourais m'aider/conseiller pour realiser une requette SQL (envers une base MySQL) qui afficherais (order) par proximité du membre (par exemple, d'abord les membres qui habite a coté de paris et puis ont s'eloigne (en cercle)).
Cela est-il possible avec MySQL ? quel genre de formule mathematique SQL pourais-t-on utiliser ? (pour trier par proximité coté MySQL), existe-il sinon des parades beaucoup plus simple ?
Mes connaisances en SQL sont assez limité, c'est pourqoui je souhaiterais avoir vos conseilles pour realiser une requette qui opere cela.
Merci d'avance.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 8 mai 2006 à 21:33
Salut,
C'est pas compliqué,
c'est un simple calcul de maths.
Alors tu sais calculé une distance entre deux points A B en connaissance
l'absicce et l'ordonnées.
Distance = Sqr((xb - xa) ^ 2 + (yb - ya) ^ 2 )
il reste plus qu'a faire le calcul.
Un genre de
select id_menbre, id_ville, lat as xb, lon as yb, Sqr((xb - xa) ^ 2 + (yb - ya) ^ 2 ) as distance
from membre
where Sqr((xb - xa) ^ 2 + (yb - ya) ^ 2 ) < 5km (trouver une valeur pour avoir par exemple 5 km
order by distance.
La requete n'a pas été testé car je n'est pas mysql ;-)
juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 20083 8 mai 2006 à 23:13
Merci beaucoup !
Je ne savais pas que de tel requette été feseable sous MySQL, sa doit faire quelques jours que je tourne autour du pot a cause de cette reflexion.
Pour info j'été partie dans l'idée de tout recalculer pour chaque membre a l'inscription, donc d'avoir une db enorme (en utilisant la formule des distances de deux points).