+ Antworten
Ergebnis 1 bis 14 von 14

Umkreissuche mit PLZ und Geodaten

Diskussion über Umkreissuche mit PLZ und Geodaten in Webdesign der Kategorie Fachliches; Moin Leute! Ich möchte eine Umkreissuche realisieren um nach plz in einem gewissen umkreis zu suchen die bestimmte Kriterien erfüllen. ...

  1. #1
    Reg.-Benutzer
    Reg.-Datum
    26.11.2010
    Beiträge
    8

    Frage Umkreissuche mit PLZ und Geodaten

    Moin Leute!

    Ich möchte eine Umkreissuche realisieren um nach plz in einem gewissen umkreis zu suchen die bestimmte Kriterien erfüllen. Hab natürlich ordentlich gegoogelt und auch was brauchbares gefunden:

    Umkreissuche mit der OpenGeoDB

    Hijey, also Beispiel geloadet und die entsprechenden DB-Tabellen erstellt.
    Soweit so gut.

    Dummerweise gibt's dann auch schon die ersten Probleme und zwar innerhalb der Klasse "umkreissuche.class.php"

    ALLE PLZ die in meiner beispieltabelle enthalten sind können "nicht zugeordnet" werden.
    Ehrlich gesagt sehe ich den Fehler nicht, warum dies auftritt
    Kann mir hier jemand auf die Sprünge helfen?

    Hier mal der komplette Code der Klasse:
    PHP-Code:
    <?php

     
    class Umkreissuche {
        
    // Erdradius in Kilometern
        
    private $Erdradius 6371;
        
    // mysql link identifier
        
    private $db;
        
    // Datentabelle
        
    private $table false;
        
    // Fehler zeigen?
        
    public $zeigeFehler true;

        public function 
    __construct($db$table 'tabelleyow') {
            if (!
    is_resource($db) || get_resource_type($db) != 'mysql link') {
                
    trigger_error('Keine MySQL-Ressource übergeben'E_USER_ERROR);
            }
            
    $this->db $db;
            
    $this->table $table;

            
    // leere Koordinaten in Tabelle füllen
            
    $sql 'SELECT `ID`, `PLZ`
                    FROM `' 
    $this->table '`
                    WHERE
                        `KoordX` = "0"
                    AND `KoordY` = "0"
                    AND `KoordZ` = "0"
                    '
    ;
            
    $re mysql_query($sql$this->db);
            while (
    $rd mysql_fetch_object($re)) {
                if (!
    $this->Plz2Koord($rd->PLZ$lon$lat)) {
                    if (
    $this->zeigeFehler) {
                        
    trigger_error('Postleitzahl ' $rd->PLZ ' konnte nicht zugeordnet werden'E_USER_NOTICE);
                    }
                    continue;
                }
                
    $this->Kugel2Kartesisch($lon$lat$x$y$z);
                
    $sql 'UPDATE `' $this->table '`
                        SET
                            `Longitude` = "' 
    $lon '",
                            `Latitude` = "' 
    $lat '",
                            `KoordX` = "' 
    $x '",
                            `KoordY` = "' 
    $y '",
                            `KoordZ` = "' 
    $z '"
                        WHERE
                            `ID` = "' 
    . (int)$rd->ID '"
                        LIMIT 1
                        '
    ;
                
    mysql_query($sql$this->db);
            }
        }
            
        public function 
    Kugel2Kartesisch($lon$lat, &$x, &$y, &$z) {
            
    $lambda $lon pi() / 180;
            
    $phi $lat pi() / 180
            
    $x $this->Erdradius cos($phi) * cos($lambda);
            
    $y $this->Erdradius cos($phi) * sin($lambda);
            
    $z $this->Erdradius sin($phi); 
            return 
    true;
        }
        
        public function 
    Plz2Koord($PLZ, &$lon, &$lat) {
            
    $sql 'SELECT
                        coo.lon,
                        coo.lat
                    FROM geodb_coordinates AS coo
                    INNER JOIN geodb_textdata AS textdata
                    ON textdata.loc_id = coo.loc_id
                    WHERE
                        textdata.text_val = "' 
    mysql_real_escape_string($PLZ$this->db) . '"
                    AND textdata.text_type = "500300000"
                    LIMIT 1'
    ;
            
    $re mysql_query($sql$this->db);
            if (
    mysql_num_rows($re) != 1) {
                return 
    false;
            }
            list(
    $lon$lat) = mysql_fetch_row($re);
            return 
    true;
        }
        
        public function 
    Suche($PLZ$Radius$Spalten = array(), $Reihenfolge false$Richtung 'ASC') {
            if (!
    is_array($Spalten) || count($Spalten) == 0) {
                
    $Spalten '*';
            } else {
                
    $Spalten '`' implode('`, `'$Spalten) . '`';
            }

            if (!
    $this->Plz2Koord($PLZ$lon$lat)) {
                if (
    $this->zeigeFehler) {
                    
    trigger_error('Postleitzahl ' $PLZ ' konnte nicht zugeordnet werden'E_USER_NOTICE);
                }
                return 
    false;
            }
            
    $this->Kugel2Kartesisch($lon$lat$UrsprungX$UrsprungY$UrsprungZ);
            
            
    $sql 'SELECT ' $Spalten '
                    FROM `' 
    $this->table '`
                    WHERE
                        KoordX >= ' 
    . ($UrsprungX $Radius) . '
                    AND KoordX <= ' 
    . ($UrsprungX $Radius) . '
                    AND KoordY >= ' 
    . ($UrsprungY $Radius) . '
                    AND KoordY <= ' 
    . ($UrsprungY $Radius) . '
                    AND KoordZ >= ' 
    . ($UrsprungZ $Radius) . '
                    AND KoordZ <= ' 
    . ($UrsprungZ $Radius) . '
                    AND POWER(' 
    $UrsprungX .' - KoordX, 2)
                      + POWER(' 
    $UrsprungY .' - KoordY, 2)
                      + POWER(' 
    $UrsprungZ .' - KoordZ, 2)
                        <= "' 
    pow($this->Erdradius sin($Radius / ($this->Erdradius)), 2) . '"';
            if (
    $Reihenfolge && strpos($Spalten$Reihenfolge) !== false) {
                
    $Richtung = (strtoupper($Richtung) == 'DESC') ? 'DESC' 'ASC';
                
    $sql .= "\n" 'ORDER BY `' $Reihenfolge '` ' $Richtung;
            }
            
    $re mysql_query($sql$this->db);
            
    $result = array();
            while (
    $rd mysql_fetch_object($re)) {
                
    $result[] = $rd;
            }
            return 
    $result;
        }

    }
    ?>

  2. #2
    Reg.-Benutzer Avatar von ins0
    Reg.-Datum
    08.02.2012
    Ort
    32339
    Beiträge
    24

    Standard

    Hast du das Script denn schonmal selbst "zerlegt" und die einzelnen Stationen durchlaufen um den Fehler auf die Schliche zu kommen?
    Sprich auch die SQL Abfragen mal selbst in Mysql Admin testen und gucken ob überhaupt Daten zum verarbeiten vorhanden sind.

  3. #3
    Reg.-Benutzer
    Reg.-Datum
    26.11.2010
    Beiträge
    8

    Standard

    Ja, hab ich.
    Sowohl die Koordinaten aus der GeoDB sind drin als auch die Einträge zu den PLZ.
    OK, die Werte zu den Koordinaten sind zu diesem Zeitpunkt alle 0, was ja auch richtig ist.
    Das macht das Script ja dann im weiteren Verlauf selbst meine Tabelle mit den richtigen Koordinaten zu befüllen, soweit komme ich ja gar nicht erst


    Notice: Postleitzahl 10178 konnte nicht zugeordnet werden in xxxxx/umkreissuche.class.php on line 35

  4. #4
    Reg.-Benutzer Avatar von ins0
    Reg.-Datum
    08.02.2012
    Ort
    32339
    Beiträge
    24

    Standard

    Das heißt du hast diesen SQL Befehl ausgeführt (mit deiner PLZ) und anschließend über PHPMyAdmin auch Daten angezeigt bekommen?

    Code:
    SELECT 
                        coo.lon, 
                        coo.lat 
                    FROM geodb_coordinates AS coo 
                    INNER JOIN geodb_textdata AS textdata 
                    ON textdata.loc_id = coo.loc_id 
                    WHERE 
                        textdata.text_val = "XXXXDEINE_PLZXXXXXX" 
                    AND textdata.text_type = "500300000" 
                    LIMIT 1
    XXXXDEINE_PLZXXXXXX ersetzten.
    Geändert von ins0 (14.02.2012 um 14:45 Uhr)

  5. #5
    Reg.-Benutzer
    Reg.-Datum
    26.11.2010
    Beiträge
    8

    Standard

    Genau, kriege ordnungsgemäß lat und lon.

  6. #6
    Reg.-Benutzer Avatar von ins0
    Reg.-Datum
    08.02.2012
    Ort
    32339
    Beiträge
    24

    Standard

    Der Fehler wird augelößt weil er keine Koordinaten zu deiner PLZ finden konnte, wenn du aber sagst das du mit dem SQL Query direkt ein Ergebnis bekommst, dann kann das nicht sein.

    Im Script kann ich keinen Fehler erkennen, also machst du iwas Falsch.

    //edit
    Überprüf die PLZ die in deiner Tabelle (laut deinen Script) "tabelleyow" stehen und prüf diese, da wird der Fehler sein, er kann die dort eingetragenen PLZ nicht finden.
    Geändert von ins0 (15.02.2012 um 17:09 Uhr)

  7. #7
    Reg.-Benutzer
    Reg.-Datum
    26.11.2010
    Beiträge
    8

    Standard

    Ich hab jetzt mal jede PLZ in der "tabelleyow" geprüft.
    Siehe da -> natürlich können einige davon nicht zugeordnet werden, in der GeoDB sind zum Teil 4stellige und/oder völlig abweichende PLZ zu den Koordinaten hinterlegt, was mich natürlich wundert. Dementsprechend ist wohl beim Import der GEOdb tabellen was schief gelaufen. ABER, einige PLZ sind korrekt hinterlegt, die müsste er immerhin finden.
    Pustekuchen. Ich werde jetzt nochmal per Hand einige PLZ/Koordinaten anpassen und hier dann nochmal posten, falls sich was getan hat.

    Danke schonmal an ins0

  8. #8
    Reg.-Benutzer
    Reg.-Datum
    04.05.2001
    Ort
    Neuburg / Donau
    Beiträge
    451

    Standard

    Hallo

    ich habe so ne Vermutung (ohne deinen Code angesehen zu haben), kann es sein, dass du für das PLZ- Feld ein Numeric benutzt hast ? Dann kann es ein Problem geben, denn es gibt auch PLZ mit führender 0 diese würde bei Numeric entfernt werden

    Gruß Hans-Jörg
    Glaube nie einer Zeit, die dein Computerprogramm selbst gestoppt hat.

  9. #9
    Reg.-Benutzer
    Reg.-Datum
    26.11.2010
    Beiträge
    8

    Standard

    Nee ist CHAR.
    Nach dem anpassen der PLZ werden diese zugeordnet.
    Ergebnisse liefert die Umkreissuche allerdings keine, auch wenn sie es müsste (sind genug PLZ in der "tabelleyow"). So langsam bin ich echt am verzweifeln, am Script scheints ja nicht zu liegen.

  10. #10
    Reg.-Benutzer Avatar von ins0
    Reg.-Datum
    08.02.2012
    Ort
    32339
    Beiträge
    24

    Standard

    Poste mal dein Script wie du die Classe verwendest und welche Daten in der DB als Orte eingetragen sind mit PLZ bitte.

  11. #11
    Reg.-Benutzer
    Reg.-Datum
    26.11.2010
    Beiträge
    8

    Standard

    OK dann poste ich mal den Rest
    PHP-Code:
    <?php
    define
    ('__CFG_DB_SERVER''localhost');
    define('__CFG_DB_NAME''db-name');
    define('__CFG_DB_USERNAME''db-user');
    define('__CFG_DB_PASSWORD''db-pass');
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Beispiel f&uuml;r eine Umkreissuche</title>
    <meta name="description" content="Beispiel f&uuml;r die in PHP und MySQL realisierte Umkreissuche auf Basis der OpenGeoDB." />
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>

    <body>
    <div id="content">
    <h1>Umkreissuche</h1>

    <h2>Suche</h2>
    <?php
    $PLZ 
    trim((get_magic_quotes_gpc()) ? stripslashes($_REQUEST['PLZ']) : $_REQUEST['PLZ']);
    $Entfernung trim((get_magic_quotes_gpc()) ? stripslashes($_REQUEST['Entfernung']) : $_REQUEST['Entfernung']);
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
    <table>
    <tr>
        <td>Postleitzahl:</td>
        <td><input type="text" name="PLZ" value="<?php echo htmlentities($PLZ); ?>" /></td>
    </tr>
    <tr>
        <td>Entfernung:</td>
        <td><select name="Entfernung">
                <option value="50"<?php if ($Entfernung == 50) echo ' selected="selected"'?>>50 km</option>
                <option value="100"<?php if ($Entfernung == 100) echo ' selected="selected"'?>>100 km</option>
                <option value="200"<?php if ($Entfernung == 200) echo ' selected="selected"'?>>200 km</option>
            </select></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" value="Suche starten" /></td>
    </tr>
    </table>
    </form>

    <?php
    if (!empty($PLZ) && ($Entfernung >= 50) && ($Entfernung <= 200)) {
        echo 
    '<h2>Ergebnis der Umkreissuche</h2>';
        if (!
    preg_match('/^([0-9]{5})$/'$PLZ)) {
            echo 
    'Das Format der eingegebenen Postleitzahl ist ung&uuml;ltig!';
        } else {
            
    $db mysql_connect(__CFG_DB_SERVER__CFG_DB_USERNAME__CFG_DB_PASSWORD) or die(mysql_error());
            
    mysql_select_db(__CFG_DB_NAME$db) or die(mysql_error());
            require_once(
    'umkreissuche.class.php');
            
    $Suche = new Umkreissuche($db'staedte');
            
    $Suche->zeigeFehler false;
            
    $Ergebnis $Suche->Suche($PLZ$Entfernung, array('Name''Einwohner''Website''Strasse''PLZ''Ort'), 'Einwohner''DESC');
            if (
    $Ergebnis === false) {
                echo 
    'In der Umkreissuche ist ein Fehler aufgetreten. Haben Sie eine g&uuml;ltige Postleitzahl eingegeben?';
            } else if (!
    count($Ergebnis)) {
                echo 
    'Leider wurden keine Ergebnisse im Umkreis von ' htmlentities($Entfernung) . ' km um die Postleitzahl ' htmlentities($PLZ) . ' gefunden!';
            } else {
                echo 
    '<ul>';
                foreach (
    $Ergebnis as $Eintrag) {
                    echo 
    '<li><strong>' htmlentities($Eintrag->Name) . '</strong><br />' "\n";
                    echo 
    number_format($Eintrag->Einwohner0',''.') . ' Einwohner<br />' "\n";
                    echo 
    htmlentities($Eintrag->Strasse) . '<br />' "\n";
                    echo 
    htmlentities($Eintrag->PLZ) . ' ' htmlentities($Eintrag->Ort) . '<br />' "\n";
                    if (!empty(
    $Eintrag->Website)) {
                        echo 
    'Website: <a href="' $Eintrag->Website '">' htmlentities($Eintrag->Website) . '</a><br />' "\n";
                    }
                    echo 
    '</li>' "\n";
                }
                echo 
    '</ul>';
            }
        }
    }
    ?>
    <div class="footer">
        
    </div>
    </div>
    </body>
    </html>
    In der DB hab ich einmal die "tabelleyow"



    Die GeoDB_Textdata



    und die GeoDB_Coordinates


  12. #12
    Reg.-Benutzer
    Reg.-Datum
    26.11.2010
    Beiträge
    8

    Standard

    Der Fehler muss ja irgendwo in der while hier stehen. Hab deshalb mal Echo's reingesetzt um mir jeweils am Anfang und ende der Schleife die Abfrage anzuschauen und WANN eine PLZ nicht zugeordnet werden kann:

    PHP-Code:
    while ($rd mysql_fetch_object($re)) {

                    echo 
    "DurchlaufSTART- $sql ";
                            if (!
    $this->Plz2Koord($rd->PLZ$lon$lat)) {
                            echo 
    "True";
                                    if (
    $this->zeigeFehler) {
                                            
    trigger_error('Postleitzahl ' $rd->PLZ ' konnte nicht zugeordnet werden'E_USER_NOTICE);
                                    }
                                    continue;
                            }
                            
    $this->Kugel2Kartesisch($lon$lat$x$y$z);
                            
    $sql 'UPDATE `' $this->table '`
                                            SET
                                                    `Longitude` = "' 
    $lon '",
                                                    `Latitude` = "' 
    $lat '",
                                                    `KoordX` = "' 
    $x '",
                                            LIMIT 1
                                            '
    ;
                            
    mysql_query($sql$this->db);
                            echo 
    "EndeSchleife- $sql";
                    }
            } 
    Für die Eingabe PLZ: 10178
    Umkreis: 200

    Bekomme ich folgendes:

    DurchlaufSTART- SELECT `ID`, `PLZ` FROM `staedte` WHERE `KoordX` = "0" AND `KoordY` = "0" AND `KoordZ` = "0" EndeSchleife- UPDATE `staedte` SET `Longitude` = "13.40629", `Latitude` = "52.524268", `KoordX` = "3770.6509673574", LIMIT 1 DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "13.40629", `Latitude` = "52.524268", `KoordX` = "3770.6509673574", LIMIT 1 EndeSchleife- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 True
    Notice: Postleitzahl 80331 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 True
    Notice: Postleitzahl 50667 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 True
    Notice: Postleitzahl 60311 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 True
    Notice: Postleitzahl 70173 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 True
    Notice: Postleitzahl 44135 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 True
    Notice: Postleitzahl 45127 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 True
    Notice: Postleitzahl 40213 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.994622", `Latitude` = "53.556866", `KoordX` = "3727.0972891479", LIMIT 1 EndeSchleife- UPDATE `staedte` SET `Longitude` = "8.8208279", `Latitude` = "53.0847558", `KoordX` = "3781.3739286288", LIMIT 1 DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.8208279", `Latitude` = "53.0847558", `KoordX` = "3781.3739286288", LIMIT 1 EndeSchleife- UPDATE `staedte` SET `Longitude` = "9.7271906", `Latitude` = "52.3843792", `KoordX` = "3832.7058577278", LIMIT 1 DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.7271906", `Latitude` = "52.3843792", `KoordX` = "3832.7058577278", LIMIT 1 True
    Notice: Postleitzahl 04109 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.7271906", `Latitude` = "52.3843792", `KoordX` = "3832.7058577278", LIMIT 1 True
    Notice: Postleitzahl 01067 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.7271906", `Latitude` = "52.3843792", `KoordX` = "3832.7058577278", LIMIT 1 True
    Notice: Postleitzahl 90403 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.7271906", `Latitude` = "52.3843792", `KoordX` = "3832.7058577278", LIMIT 1 True
    Notice: Postleitzahl 47051 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.7271906", `Latitude` = "52.3843792", `KoordX` = "3832.7058577278", LIMIT 1 True
    Notice: Postleitzahl 44787 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.7271906", `Latitude` = "52.3843792", `KoordX` = "3832.7058577278", LIMIT 1 True
    Notice: Postleitzahl 42275 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "9.7271906", `Latitude` = "52.3843792", `KoordX` = "3832.7058577278", LIMIT 1 EndeSchleife- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 53111 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 68159 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 76133 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 65183 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 48143 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 45894 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 86150 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 41061 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 True
    Notice: Postleitzahl 52062 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "8.545686", `Latitude` = "52.0215963", `KoordX` = "3876.9601943523", LIMIT 1 EndeSchleife- UPDATE `staedte` SET `Longitude` = "10.5267696", `Latitude` = "52.2688736", `KoordX` = "3833.1589492444", LIMIT 1 DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "10.5267696", `Latitude` = "52.2688736", `KoordX` = "3833.1589492444", LIMIT 1 True
    Notice: Postleitzahl 09111 konnte nicht zugeordnet werden in /srv/www/web10/html/umkreissuche.class.php on line 38
    DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "10.5267696", `Latitude` = "52.2688736", `KoordX` = "3833.1589492444", LIMIT 1 EndeSchleife- UPDATE `staedte` SET `Longitude` = "10.1227652", `Latitude` = "54.3232927", `KoordX` = "3657.797677975", LIMIT 1 DurchlaufSTART- UPDATE `staedte` SET `Longitude` = "10.1227652", `Latitude` = "54.3232927", `KoordX` = "3657.797677975", LIMIT 1 EndeSchleife- UPDATE `staedte` SET `Longitude` = "9.8690418", `Latitude` = "51.7007573", `KoordX` = "3890.1158552195", LIMIT 1 Leider wurden keine Ergebnisse im Umkreis von 200 km um die Postleitzahl 10178 gefunden!

  13. #13
    Reg.-Benutzer
    Reg.-Datum
    26.11.2010
    Beiträge
    8

    Standard

    Gehe ich recht in der Annahme das beim befüllen der Spalten Longitude, Latidue, KooordX,Y,Z in der tabelle der Fehler liegt?

  14. #14
    Reg.-Benutzer
    Reg.-Datum
    04.11.2006
    Ort
    Köln
    Beiträge
    24

    Standard

    Wenn ich alles richtig verstanden habe geht es lediglich um die Frage, warum mysql_num_rows($re) in Plz2Koord() was anderes als 1 liefert?

    Ich würde nach der Ausführung des SQLs mal bei mysql anfragen, ob alles glattgegangen ist (mysql_error). Ich kann gerade auch keinen Fehler entdecken, für eine Fehleranalyse ist das aber definitiv noch viel zu viel Code.

    Versuch mal in einem Testscript nur die die Plz2Koord()-Methode mit einer per phpmyadmin getesteten PLZ aufzurufen.

    BTW: ist das richtig, dass deine UPDATE-Anweisung keine WHERE-Klausel hat?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. Geodaten mit PLZ und Umkreis
    Von bigvic im Forum Skript- und Webserverprogrammierung
    Antworten: 10
    Letzter Beitrag: 21.12.2009, 11:50
  2. FIAE Abschlussprojekt: Umkreissuche PHP
    Von QDog im Forum Abschlussprojekte
    Antworten: 1
    Letzter Beitrag: 20.04.2009, 10:00

Die häufigsten Suchbegriffe für diese Seite:

Bisher noch keine Treffer von einer Suchmaschine