Ausgabe nach Entferung sortieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausgabe nach Entferung sortieren

    Ich habe folgendes Script erstellt das mir alle Einträge im Umkreis einer PLZ anzeigt.
    Wie kann ich die Datensätze so ausgeben, das er mir diese noch nach $distance sortiert ausgibt.
    PHP-Code:

            
    // Gefundene Datensätze für die PLZ ausgeben und entfernung zur gemeinde berechnen            
            
    while( $zielerow mysql_fetch_array($final_result))
            {
                
                
    $p1x $gemeinde_lat;
                 
    $p1y $gemeinde_lon;
                
    $p2x $zielerow['LAT'];
                 
    $p2y $zielerow['LON'];

                  
    // Kreiszahl Pi 
                  
    $pi pi();

                  
    // Umrechnung der Gradzahl in RAD:
                  
    $b1     $p1x 180 $pi ;
                  
    $l1     $p1y 180 $pi ;
                  
    $b2     $p2x 180 $pi ;
                  
    $l2     $p2y 180 $pi ;

                  
    $e acossin($b1)*sin($b2) + cos($b1)*cos($b2)*cos($l2-$l1) );
                  
    $entf $e 6378.137;
                
                
    $distance round($entf1);
                            
                if(
    $distance == "0"){
                    
    $dist "<small class=error>Keine GPS-Daten gefunden</small>";
                } else {
                    
    $dist "Entfernung: $distance km <small>(Luftlinie)</small>";
                }
                            
                
    // Informationen über das Ziel anzeigen            
                
    $ziel_objekt $zielerow['OBJEKT'];            
                
    $ziel_kurztext $zielerow['KURZTEXT'];
                            
                
    // Daten ausgeben    
                
    print " <LI> <a href=\"?ausflug&amp;do=details&amp;id=".$zielerow['ID']."\" title=\"$ziel_kurztext\">$ziel_objekt</a> <br> $dist </LI> ";
                    
            } 
    Zuletzt geändert von maffy; 11.05.2008, 18:13.
    in der ruhe liegt die kraft

  • #2
    Da deine Rechnung recht komisch aussieht:

    Erstell ein Zwischenarray mit der distanz und dem ort oder was auch immer du zur distanz noch brauchst und lies es später aus.

    Alles was du brauchst steht unter http://php.net/array bzw. schleifen, die du ja kennst..

    mfg

    Kommentar


    • #3
      So, nach langem suchen und verzweifeln habe ich es endlich geschaft eine Umkreissuche mit PHP und MySQL zu machen:

      Code Bsp. gefunden hier:
      http://code.google.com/support/bin/a...ta#createtable

      Nachdem hier schon öfters nach einer Umkreissuche gefragt wurde ist hier mein Code.

      Zeigt die nächsten 10 Datensätze von einen Ausgangspunkt an:

      PHP-Code:

              
      // Search the rows in the markers table
              // wenn nur innerhalb der plz noch nach der plz oder gemeindeschlüssel sortieren WHERE plz= ".$gemeinde_plz ."
              
      $query sprintf("SELECT ID, OBJEKT, LAT, LON, KURZTEXT, ( 6371 * acos( cos( radians('$gemeinde_lat') ) * cos( radians( LAT ) ) * 
              cos( radians( LON ) - radians('
      $gemeinde_lon') ) + sin( radians('$gemeinde_lat') ) * sin( radians( LAT ) ) ) ) AS distance 
              FROM "
      .ZIELE_TABLE." HAVING distance < '$radius'   ORDER BY distance ASC Limit 0,10");
              
      $result mysql_query($query); 
      Hier ist die Seite wo ich das einsetze.
      Zuletzt geändert von maffy; 11.05.2008, 20:29.
      in der ruhe liegt die kraft

      Kommentar

      Lädt...
      X