Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trier requête SQL en fonction d'un calcul

    12 mai 2016 à 16:02:55

    Bonjour :)

    J'ai un problème et je ne sais pas sous quel angle l'aborder..

    J'ai dans ma base de donnée plusieurs adresses (ville, code postal, rue et numéro).

    Et, sur mon site web, je reçois une nouvelle adresse (ville, code postal, rue et numéro) via un formulaire.

    J'utilise les API de Google Maps pour calculer la distance (en mètre) entre l'adresse que j'ai obtenu via mon formulaire, et celle stockés dans ma base de données, jusque là, pas de problème.

    Seulement maintenant, j'aimerais lister toutes les adresses que j'ai dans ma bdd dans l'ordre croissant de cette distance. En clair afficher l'adresse stocké dans ma bdd qui est le plus proche de l'adresse entré dans le formulaire. Puis la 2em, la 3em, etc.

    Et.. je ne vois pas du tout comment faire :( Je ne peux pas faire un ORDER BY dans mon SELECT puisque j'ai d'abord un calculer à effectuer pour connaître la distance entre les deux adresses.

    Si quelqu'un a une idée.. :magicien:

    -
    Edité par Unanymously 12 mai 2016 à 16:03:40

    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2016 à 9:14:17

      Pas de réponse ?

      La seule solution que je vois est de créer un champs "distance" pour chaque adresse dans ma bdd.

      Je fais ensuite un SELECT * pour avoir tout les champs, et je fais une boucle qui calcule pour chaque adresse stocké la distance avec mon adresse reçu via mon formulaire. Puis je fais un INSERT à chaque boucle pour stocker le résultat.

      Et enfin, je fais un SELECT * ORDER BY distance.

      Problème : Performance. Fais une boucle de INSERT je sais pas si c'est le top .. :-°

      • Partager sur Facebook
      • Partager sur Twitter
        20 janvier 2018 à 17:45:21

        bonjour,

        je suis sensé à faire pareil, pouvez vous m'expliquer comment faites pour calculer la distance ?, j'arrive à la calculer mais entre deux adresses récupérer par deux formulaires ! mais ce que je veux est entre un formulaire et la base de donnée.

         merci d'avance 

        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2018 à 19:26:17

          Un bon gros usort() est de rigueur !

          • Partager sur Facebook
          • Partager sur Twitter
          Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

          Trier requête SQL en fonction d'un calcul

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown