Requete SQL compliquée

Tanglung
Invité n'ayant pas de compte PHPfrance

13 avr. 2007, 13:08

Bonjour,

J'ai une BDD MySQL qui contient une liste de points. Elle est organisée ainsi:

Titre | x | y

Ou titre est le titre du point sur ma carte, et x, y ses coordonnées

J'aimerai recupérer tous les points de la BDD en la triant par proximité d'un point A de coordonées X et Y.

SELECT * FROM points ORDER BY ????


Quelqun aurait il une idée ??

Un grand merci !

PS : on peut y arriver en calculant les distances avec pythagor, en chargant tous les points dans un tableau,puis en le triant par distance, mais ca oblige a charger tous les points de la BDD et y en a plus de 10 000 donc intraitable pour le serveur

ViPHP
ViPHP | 3607 Messages

13 avr. 2007, 13:29

et bien si avec pythagore ça fera l'affaire:

Code : Tout sélectionner

SELECT titre,x,y,SQRT(POW(x-x_point,2)+POW(y-y_point,2)) as distance FROM points order by distance
où x_point et y_point sont les coordonnées de ton point de départ autour duquel tu souhaites rayonner.
L'idée est là, après, je sais pas si mon calcul est exact :roll: