Tharsis Geschrieben 14. Februar 2012 Teilen Geschrieben 14. Februar 2012 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 :confused: Kann mir hier jemand auf die Sprünge helfen? Hier mal der komplette Code der Klasse: <?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(2 * $this->Erdradius * sin($Radius / (2 * $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; } } ?>[/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ins0 Geschrieben 14. Februar 2012 Teilen Geschrieben 14. Februar 2012 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tharsis Geschrieben 14. Februar 2012 Autor Teilen Geschrieben 14. Februar 2012 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 :upps Notice: Postleitzahl 10178 konnte nicht zugeordnet werden in xxxxx/umkreissuche.class.php on line 35 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ins0 Geschrieben 14. Februar 2012 Teilen Geschrieben 14. Februar 2012 (bearbeitet) Das heißt du hast diesen SQL Befehl ausgeführt (mit deiner PLZ) und anschließend über PHPMyAdmin auch Daten angezeigt bekommen? 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. Bearbeitet 14. Februar 2012 von ins0 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tharsis Geschrieben 15. Februar 2012 Autor Teilen Geschrieben 15. Februar 2012 Genau, kriege ordnungsgemäß lat und lon. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ins0 Geschrieben 15. Februar 2012 Teilen Geschrieben 15. Februar 2012 (bearbeitet) 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. Bearbeitet 15. Februar 2012 von ins0 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tharsis Geschrieben 16. Februar 2012 Autor Teilen Geschrieben 16. Februar 2012 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HJST1979 Geschrieben 16. Februar 2012 Teilen Geschrieben 16. Februar 2012 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tharsis Geschrieben 16. Februar 2012 Autor Teilen Geschrieben 16. Februar 2012 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. :eek Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ins0 Geschrieben 16. Februar 2012 Teilen Geschrieben 16. Februar 2012 Poste mal dein Script wie du die Classe verwendest und welche Daten in der DB als Orte eingetragen sind mit PLZ bitte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tharsis Geschrieben 16. Februar 2012 Autor Teilen Geschrieben 16. Februar 2012 OK dann poste ich mal den Rest <?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ür eine Umkreissuche</title> <meta name="description" content="Beispiel fü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> </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ü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ü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->Einwohner, 0, ',', '.') . ' 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> [/PHP] In der DB hab ich einmal die "tabelleyow" Die GeoDB_Textdata und die GeoDB_Coordinates Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tharsis Geschrieben 2. März 2012 Autor Teilen Geschrieben 2. März 2012 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: 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"; } } [/PHP] 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tharsis Geschrieben 2. März 2012 Autor Teilen Geschrieben 2. März 2012 Gehe ich recht in der Annahme das beim befüllen der Spalten Longitude, Latidue, KooordX,Y,Z in der tabelle der Fehler liegt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast runtimeterror Geschrieben 10. März 2012 Teilen Geschrieben 10. März 2012 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.