2010-09-06 10 views
9

MySQL (Tabelle)Order-Tabelle durch die Nähe zu bestimmten Breite/Länge (mit MySQL + PHP)

id | url | lat | lng 
---------------------------------- 
1 | x | 44.339565 | -101.337891 
---------------------------------- 
2 | y | 44.150681 | -101.074219 
---------------------------------- 
3 | z | 43.897892 | -100.634766 

, was ich will jetzt tun ist, um die Liste nach ihrer Nähe zu (43,834527, -99,140625) .

$a = mysql_query("SELECT * FROM table ORDER BY proximity DESC"); 
while($b = mysql_fetch_assoc($a)) 
{ 
echo $b['url'].'<br />'; 
} 

Antwort

11

Sie können bei der Prüfung der folgenden Präsentation interessieren:

Der Autor beschreibt, wie Sie die Haversine Formula in MySQL verwenden können, um zu bestellen Nähe und begrenzen Sie Ihre Suche auf einen definierten Bereich. Er beschreibt auch, wie eine vollständige Tabellensuche für solche Abfragen vermieden werden kann, indem traditionelle Indizes für die Spalten für die Breite und Länge verwendet werden.


PDF Version