8792 sujets

Développement web côté serveur, CMS

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
Une requête de ce type devrait convenir (ici par rapport au point de coordonnées (5, 8)) :
SELECT titre, x, y 
FROM points 
ORDER BY POW(5-x, 2) + POW(8-y, 2)


Et si tu veux aussi récupérer la distance :
SELECT titre, x, y, 
       SQRT(POW(5-x, 2) + POW(8-y, 2)) AS distance
FROM points 
ORDER BY distance