Sortieren von Daten
explofish
- php
Hallo liebe Community!
Wir haben Folgende Situation:
Wir haben eine Datenbank mit Filialadressen
Wir wollen dem Kunden ermöglichen die nächstgelegene Filiale zu finden.
Folgendes habe ich schon realisiert:
Jede Filiale hat einen Längen und Breitengrad Bekommen.
Gibt der User seine Straße und Ort ein wird der Längen und Breitengrad des Users berechnet und über eine Mathematische formel der Abstand.
Nun habe ich diesen Abstand in einer while schleife der Mysql abfrage eingespeichert und möchte die daten nach dem abstand sortieren!
Genau da weiß ich nicht wie ich es angehen soll!
Ich hoffe euch ist klar wie meine Frage ist! Vielen dank für die hilfe schoneimal!
Hallo,
Nun habe ich diesen Abstand in einer while schleife der Mysql abfrage eingespeichert und möchte die daten nach dem abstand sortieren!
Genau da weiß ich nicht wie ich es angehen soll!
Am besten mit array_multisort() oder mit einem eigenen Sortier-Algorithmus, der - insofern du ein bisschen Erfahrung hast - in MAXIMAL einem Tag programmiert sein sollte... :D
MfG
Hello,
Nun habe ich diesen Abstand in einer while schleife der Mysql abfrage eingespeichert und möchte die daten nach dem abstand sortieren!
Wie hast Du das gemacht?
Hast Du eine temporäre Tabelle mit den Filial-ID und der Kunden-Location-ID sowie den Abständen erzeugt?
Die könntest Du dann leicht wieder über die Abstände sortieren lassen und die besten fünf (oder so ähnlich) anzeigen lassen.
Ich denke nicht, dass das eine Aufgabe für die API (PHP) ist, sondern (fast) ausschließlich für die Datenbank.
Wenn man zweistufig arbeitet, könnte man den Rechenaufwand sogar noch enorm vereinfachen.
Selektiere erst die Datensätze der Filialen,
pseudocode:
where (x-eps) < Xs < (x+eps)
and (y-eps) < Ys < (y+eps)
wobei x die Gauss-Krüger-Koordinate der Filiale in X-Richtung
y die Gauss-Krüger-Koordinate der Filiale in Y-Richtung
und Xs und Ys diejenigen des Kunden sind.
Reine Vergleiche gehen viel schneller, als Rechnungen
Im zweiten Schritt lässt Du dann die Entfernungen ausrechnen und sortieren
Im dritten Schritt kannst Du das dann ausgeben.
Mit etwas Geschick (das fehlt mir hier im Moment) kann man das bei MySQL 5.x bestimmt auch schon ein einer einzigen Abfrage mit zwei (?) Subselects unterbringen.
Ein harzliches Glückauf
Tom vom Berg
http://bergpost.annerschbarrich.de
.
Hello,
Nachtrag:
pseudocode:
where (x-eps) < Xs < (x+eps)
and (y-eps) < Ys < (y+eps)
hierzu fällt mir noch "between" ein
Ein harzliches Glückauf
Tom vom Berg
http://bergpost.annerschbarrich.de
.