Ich hole jetzt mal etwas weiter aus, um Grundlagen zu vermitteln, die dir offensichtlich fehlen. Also stell dir mal vor ...
Du hast eine Tabelle namens "Flughafen"
Code:
ID | Name | Lat | Lon | ...
---------------------------
1 | Foo | ... | ... | ...
2 | Bar | ... | ... | ...
3 | Baz | ... | ... | ...
und eine namens "Flug"
Code:
ID | Flughafen_ID | ...
---------------------------
1 | 1 | ...
1 | 2 | ...
2 | 1 | ...
2 | 3 | ...
Du möchtest auf einer Seite die Länge eines Fluges angeben. Dein Skript bekommt eine Flug-ID, die der Pilot auf einer anderen Seite ausgewählt hat.
Nun holst du zu dieser Flug-ID alle Flughafen-IDs aus der Tabelle Flug.
Code:
SELECT Flughafen_ID FROM Flug WHERE ID = $ID
Das liefert entweder Null Ergebnisse, bei falscher ID, oder exakt zwei Ergebnisse, nämlich Start- und Zielflughafen.
Das Ergebnis kannst du mit einer While-Schleife in ein Array schaufeln oder einfach zweimal hintereinander mysql_fetch_irgendwas() notieren, um die zwei Ergebnisse in getrennte Variablen zu speichern.
Jetzt holst du Lat,Lon aus der Tabelle Flughafen - für alle Flughäfen, deren ID du durch die erste Abfrage erhalten hast.
Code:
SELECT Lat, Lon FROM Flughafen WHERE ID = $FHID1 OR ID = $FHID2
Das liefert ebenfalls exakt zwei Ergebnisse, zu jeder Flughafen-ID ein Lat-Lon-Päarchen, das du für die Distanzberechnung benutzen kannst.
So einfach ist das. Ich hoffe, du hast es halbwegs verstanden und baust es erstmal so nach. Das ergibt ungefähr folgenden Code
PHP-Code:
// Auflösung Flug-ID => Flughafen-IDs
mysql_query()
mysql_fetch_irgendwas()
mysql_fetch_irgendwas()
// Auflösung Flughafen-IDs => Lat,Lon
mysql_query()
mysql_fetch_irgendwas()
mysql_fetch_irgendwas()
// Distanzberechnung
distance()
Wenn du damit fertig bist und alles so funktioniert wie es soll, können wir nochmal über JOIN sprechen.
@Amica: Wäre das kein self join?
SELECT f1.lat, f1.lon, f2.lat, f2.lon
FROM Flughafen AS f1
JOIN Flughafen AS f2 ON f1.Flughafen_ID = f2.Flughafen_ID
WHERE f1.Flughafen_ID = $ID