Comparer l'écart entre 2 nombres en PHP+SQL

Fermé
waxor Messages postés 51 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 19 août 2012 - Modifié par waxor le 15/08/2012 à 13:57
 A.Nonymous - 17 août 2012 à 11:49
Bonjour,

je me trouve dans une situation un peu particulière. Je cherche à pouvoir classer des nombres en fonction de l'écart qu'ils ont vis à vis d'un nombre donné :

Exemple :
$leNombreDeReference = 6; 

$nbr1 = 8; 
$nbr2 = 3; 
$nbr3 = 5; 
$nbr4 = 11; 


Comment faire pour sortir les résultats comme ça :
5
8
3
11

Dans la pratique je dois sortir des adresses (que j'ai en coordonnées GPS) qui se trouvent dans une base de donnée avec en premier résultat la plus proche de chez moi et en dernier résultat la plus éloignée.

Voila j'espère que j'ai été plutôt clair.

Merci d'avance.

Jean.


-----------------------------------------------------------------------------------------------
Petite correction apportée à mon post :

la question porte sur la requête SQL comment réaliser une requête du genre :
SELECT * FROM ma_table ORDER BY |$leNombreDeReference - $leNombreDeLaBase| DESC


En fait il s'agit d'intégrer un calcul avec des valeur absolue dans la requête SQL au niveau du ORDER BY et ça je ne sais pas si c'est possible ni comment on fait.

Voila merci.
-----------------------------------------------------------------------------------------------

A voir également:

3 réponses

Utilisateur anonyme
15 août 2012 à 15:56
Bonjour

La valeur absolue existe en SQL.

SELECT * FROM table ORDER BY ABS($reference - champ)

Pour classer des points donnés par des coordonnées GPS en fonction de leurs distances à un point de référence, ça ne suffit pas. La distance entre deux points est plus compliquée que ça, elle fait intervenir des fonctions trigonométriques, mais ça doit être faisable aussi.
5
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
16 août 2012 à 13:17
bonjour,

voici un lien qui devrait t'intéresser :

http://www.phpsources.org/calcul-de-la-distance-entre-deux-coordonnees-gps-avec-mysql_101.html
1
waxor Messages postés 51 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 19 août 2012 2
Modifié par waxor le 16/08/2012 à 13:17
Merci beaucoup.

Je pense qu'avec une requêtes du type :
SELECT * FROM ma_table ORDER BY ABS($leNombreDeReference - (latitude/longitude))

ça devrait marcher. En sachant que $leNombreDeReference représente en fait latitude/longitude du point de référence.

Je reviendrais pour dire si ça à marcher et pour mettre le post en résolu si c'est le cas.

Merci et à bientôt.


Jean.
0
Utilisateur anonyme
16 août 2012 à 13:47
Pourquoi latitude / longitude ? Pourquoi pas + ou - ou * ???
Lis le lien de maka54
0
D'autant qu'il existe une longitude 0.
0