Distanzberechnung

Das liegt daran, das es die Funktion sonst nirgends gibt. Du musst sie erst schreiben. Hier noch ein Tipp, welche Funktionen alle gebraucht werden:

- cos
- acos
- sin
- round
- pi
- Eine Definition oder Konstante für den Erdumfang
 
Naja, allso gut. Hatte grad mal Lust. Habs nicht getestet aber müsste so funktionieren denk ich.

PHP:
function calculate_spheric_distance($lat1, $lat2, $lon1, $lon2)
{
 $faktor = M_PI / 180; //umrechnungsfaktor nach bogenmass
 
 $radius = 6370; //mittlerer Erdradius
 
 $a_lat = $lat1 * $faktor; // breite
 $a_lon = $lon1 * $faktor; //länge
 
 $b_lat = $lat2 * $faktor; //breite
 $b_lon = $lon2 * $faktor; //länge
 
$distance =  round(acos(sin($b_lat)*sin($a_lat)+cos($b_lat)*cos($a_lat)*cos($b_lon - $a_lon)) * $radius, 2);

return $distance;
}


Probiers mal aus

mfg
 
Zuletzt bearbeitet:
Sevvo wenn ich das von dir geschriebene einsetzte bleibt die Seite bis auf das echo Flugnummer weiß
PHP:
<?php 
function calculate_spheric_distance($lat1, $lat2, $lon1, $lon2)
{
 $faktor = M_PI / 180; //umrechnungsfaktor nach bogenmass
 
 $radius = 6370; //mittlerer Erdradius
 
 $a_lat = $lat1 * $faktor; // breite
 $a_lon = $lon1 * $faktor; //länge
 
 $b_lat = $lat2 * $faktor; //breite
 $b_lon = $lon2 * $faktor; //länge
 
$distance =  round(acos(sin($b_lat)*sin($a_lat)+cos($b_lat)*cos($a_lat)*cos($b_lon - $a_lon)) * $radius, 2);

return $distance;
}  
$flugnummer = isset($_GET['flugnummer']) ? $_GET['flugnummer'] : null;  
$abfrage = "SELECT 
                                        `piloten`.`pilot_id` , 
                    `Flugplan`.`flughafenid1` , 
                    `Flugplan`.`dep_time` , 
                    `Flugplan`.`flughafenid2` , 
                    `Flugplan`.`arr_time` ,             
                    `Flugplan`.`flugnummer`,
                    `Flugplan`.`days`,
                    `Flugplan`.`registrierung`,
                    `Flugplan`.`hersteller_name`,
                    `Flugplan`.`comment_charter`,
                    `Flugplan`.`gebucht`,
                    `Flugplan`.`pilotid`,
 FROM 
                     piloten,
                    Flughafen, 
                    Flugplan 
WHERE 
                    (pilot_id = '$pilot_id') AND(flughafenid1 = 'flughafenid') AND(flughafenid2 = 'flughafenid')";
$ergebnis = mysql_query($abfrage);
echo "$flugnummer";
if ($ergebnis)
{
         // Geo-Koordinaten der Flughäfen besorgen
             $airport1Query = sprintf("SELECT lat,lon FROM Flughafen WHERE flughafenid = '%s'", $flughafenid1);
             $airport2Query = sprintf("SELECT lat,lon FROM Flughafen WHERE flughafenid = '%s'", $flughafenid2);
             
             $airport1Result = mysql_query($airport1Query) or die( mysql_error() ); 
             $airport2Result = mysql_query($airport2Query) or die( mysql_error() ); 
             
             $airport1Data   = mysql_fetch_assoc($airport1Result);
             $airport2Data   = mysql_fetch_assoc($airport2Result);
             
             $lat1 = $airport1Data['lat'];
             $lat2 = $airport2Data['lat'];
             $lon1 = $airport1Data['lon'];
             $lon2 = $airport2Data['lon'];
         // Fertig: Geo-Koordinaten der Flughäfen besorgen
         
             $entfernung = calculate_spheric_distance($lat1, $lat2, $lon1, $lon2);
             
       print "<table border=\"0\" cellspacing=\"2\" ".
       "cellpadding=\"5\" WIDTH=\"63\%\" class=\"tableLine\">\n";
 
       
       
       while ($dataset = mysql_fetch_array($ergebnis))
 
           {
        print "<tr>";
        print "<td>Flugnummer:</td><td>".$dataset['flugnummer']."</td><td></td><td></td><td></td>
        </tr>";;  
        print "<tr>";
        print "<td>Abflug:</td><td>".$dataset['flughafenid1']."&nbsp;"."</td><td></td><td>Ankunft:</td><td>".$dataset['flughafenid2']."&nbsp;"."</td>
        </tr>";; 
        print "<tr>";
        print "<td>Abflugzeit:</td><td>".$dataset['dep_time']."</td><td></td><td></td><td></td>
        </tr>";; 
        print "<tr>";
        print "<td></td><td></td><td></td><td>Ankunftszeit:</td><td>".$dataset['arr_time']."</td>
        </tr>";; 
        print "<td>Flungtage:</td><td>".$dataset['days']."&nbsp;"."</td><td></td><td>Regestrierung:</td><td>".$dataset['registrierung']."&nbsp;"."</td>
        </tr>";; 
        print "<tr>";
        print "<td>Route:</td><td colspan=\"4\">".$dataset['route']."&nbsp;"."</td>
        </tr>";;
        print "<tr>";
        print "<td></td><td></td><td></td><td></td><td></td>
        </tr>";;
        print "<tr>";
        print "<td>Anmerkung:</td><td colspan=\"4\">".$dataset['comment_charter']."&nbsp;"."</td>
        </tr>";;
		print "<tr>";
        print "<td>Anmerkung:</td><td colspan=\"4\">".$dataset['$entfernung']."&nbsp;"."</td>
        </tr>";;   
 
             }
    print "</td></tr>\n";
    print "</table>\n";
      }?>
 
Der Fehler ist die Seite bleibt is auf das Echo Flughnummer wei´ß. Die anderen Ausghaben auf dem Bild was folgt sind unabhängige Abfragen die nichts mit der hier besprochenen zu tun haben.
BSP.jpg
 
Naja, wenn du das gelesen hättest oder mal die suche benutzt hättest, wüsstest du wie man einen Fehler vll ausgeben lassen kann oder darauf kommt.

Wir sollen dein Fehler finden ohne irgend einen Anhaltspunkt. Ich wage zu behaupten das das keiner machen wird.

Vermutlich ist bei dir die Fehler Anzeige deaktiviert oder sonst was. (Hellseher)

Allso, um uns allen mal die ewig weiterführende sinnlose diskussion zu ersparen. Füge mal folgendes ganz oben ein
PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL|E_STRICT);

vielleicht hilft es ja :)
 
Zurück