tutorials.de Buch-Aktion 02/2012
Seite 1 von 2 12 LetzteLetzte
Like Tree2Danke
ERLEDIGT
JA
ANTWORTEN
20
ZUGRIFFE
21432
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Nov 2002
    Beiträge
    2.709
    Hallo,

    ich bin auf der Suche nach einem MySQL-Daten-Dump für eine Postleitzahlen-Tabelle. Hat einer von euch sowas an der Hand, oder muss ich mir die alle selber raussuchen und eintippen?

    Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    
    +-------+-----------+
    | PLZ   | Ort       |
    +-------+-----------+
    | 33613 | Bielefeld |
    | 33739 | Bielefeld |
    +-------+-----------+
     
    Im Ruhestand.

  2. #2
    vop vop ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Beiträge
    676
    Hi Johannes

    Das ist zwar kein MySQL-Dump sondern nur ein dbf-Datei.
    Auch ist etwas mehr Information enthalten als nötig, aber wenn Du sonst nichts findest ist dies besser als nichts.

    http://www.smallutions.de/update.php

    vop
     

  3. #3
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Welchen Tabellennamen und welche Spaltennamen hättest Du denn gerne?
    Willst Du nach Postleitzahl sortiert eintragen oder lieber nach Ort?
    Die max_execution_time kannst ggf. Du höher stellen?

    Gruss Dr Dau
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  4. #4
    Registriert seit
    Nov 2002
    Beiträge
    2.709
    Zitat Zitat von Dr Dau
    Hallo!

    Welchen Tabellennamen und welche Spaltennamen hättest Du denn gerne?
    Willst Du nach Postleitzahl sortiert eintragen oder lieber nach Ort?
    Die max_execution_time kannst ggf. Du höher stellen?

    Gruss Dr Dau
    Spalten- und Tabellenname ist mir völlig wurscht, es geht nur darum, meine Adress-Tabellen zu normalisieren...

    @vop: Danke, aber ich finde da nur win32-Programme, mit denen ich nichts anfangen kann.
     
    Im Ruhestand.

  5. #5
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    So, folgendes hat sich ergeben:
    1. Dadurch dass ich den Spaltentyp für "PLZ" von "varchar" auf "int" umgestellt hatte, wurden alle führenden Nullen der Postleitzahlen entfernt.

    2. Beim Import über den Dateiupload von phpMyAdmin wurden alle Zeichen der Ortsnamen ab dem Umlaut (sofern vorhanden) entfernt.
    Solltet ihr die Datensätze also über den Upload importieren, müsst ihr bei "Zeichencodierung der Datei" auf "latin1" umstellen.
    Dieses wirkt sich nicht auf die Kollation (UTF-8) der Tabelle "orte" bzw. der Spalte "Ort" aus, sondern dient nur der korrekten Zeichenerkennung der SQL-Dateien.

    3. Bei dieser Gelegenheit habe ich gleich mal die Scripte von Dennis getestet.
    Sowohl der Import als auch der Export funktionieren tadellos..... und dass sogar mit einer sehr guten Geschwindigkeit, so dass ihr eigentlich keine Probleme mit der max_execution_time (meisst 30 Sekunden) bekommen solltet.
    Somit sind die SQL-Dateien nun auch nach der Anfangszahl der Postleitzahl aufgeteilt.
    Die Aufteilung entspricht jedoch nicht den Bundesländern, sondern den Postleitzonen (so nenne ich es jetzt mal ).
    Näheres zu der Aufteilung der Zonen könnt ihr euch hier ansehen.

    Was Dennis sein Import-Script betrifft, habe ich beide Klassen (unter PHP5) getestet (Dateinamen der Klasse ggf. anpassen).

    Dennis hatte mir noch mitgeteilt dass er Probleme mit "DEFAULT CHARSET=utf8" hatte, dieses Problem liess sich für mich aber nicht reproduzieren.
    Jedenfalls hat Dennis sein Script entsprechend angepasst ("DEFAULT" wurde entfernt) und auch ich habe die "create_table.sql" gefixt, was problemlos funktioniert.

    Es müssen insgesamt 44.188 Datensätze sein.
    Der letzte Datensatz muss "99998 Körten" lauten, sollte hier nur "99998 K" stehen habt ihr wahrscheinlich ein Fehler beim importieren gemacht (s.o.).

    So, nun hoffe ich dass alle Probleme behoben sind und hänge die gefixten SQL-Dateien mit an.
    Angehängte Dateien Angehängte Dateien
    Geändert von Dr Dau (26.11.05 um 03:37 Uhr)
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  6. #6
    Registriert seit
    Nov 2002
    Beiträge
    2.709
    Ooooh, fantastisch. Vielen Dank.
     
    Im Ruhestand.

  7. #7
    Registriert seit
    Jan 2002
    Ort
    Hedwich-Holzbein
    Beiträge
    562
    Blog-Einträge
    1
    Vielleicht kann die Dumps ja mal einer hier festpinen. Die werden bestimmt öfter mal gebraucht .
     
    Ganz gleich was auch immer, jedenfalls ja!

  8. #8
    Registriert seit
    Nov 2002
    Beiträge
    2.709
    Gute Idee. Schon passiert.
     
    Im Ruhestand.

  9. #9
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    So, ich hab da noch was beizutragen.
    Die Sortierung der SQL-Files gefiel mir nicht so ganz, daher hab ich mal ein kleines Export-Script gebastelt um die Dateien so anzulegen, dass die nach Postleitzahlen sortiert sind und die einzelnen Files die jeweiligen Bundeslaender enthalten.

    Und da ich dann schonmal dabei war hab ich dann noch ein Import-Script hinterher geschoben.
    Das Import-Script erwartet die SQL-Files im Unterverzeichnis dump.
    Die Klasse die ich im Import-Script genutzt hab gibt's hier.

    plzdbexport.php
    PHP-Code:
    <?php
    $host
    ="";
    $username="";
    $password="";
    $database="";
    $db=mysql_connect($host,$username,$password);
    mysql_select_db($database,$db);
    echo 
    'Writing create_table.sql<br>';
    $file=fopen("create_table.sql","w");
    fwrite($file,"CREATE TABLE `orte` (`id` INT(11) NOT NULL AUTO_INCREMENT,`PLZ` INT(5) UNSIGNED ZEROFILL NOT NULL DEFAULT '0',`Ort` VARCHAR(50) NOT NULL DEFAULT '-',PRIMARY KEY (`id`)) ENGINE=MyISAM CHARSET=utf8;\r\n");
    fclose($file);
    for (
    $x=0;$x<10;$x++)
        {
            echo 
    'Writing plz'.$x.'.sql<br>';
            
    flush();
            
    $file=fopen("plz".$x.".sql","w");
            
    $orte=mysql_query("select * from orte where PLZ>".(($x*10000)-1)." and PLZ<".(($x*10000)+10000)." order by PLZ",$db);
            while (
    $ort=mysql_fetch_assoc($orte))
                {
                    
    fwrite($file,"INSERT INTO `orte` VALUES ('','".$ort['PLZ']."','".$ort['Ort']."');\r\n");
                }
            
    fclose($file);
        }
    mysql_close($db);
    ?>
    plzdbimport.php
    PHP-Code:
    <?php
    $host
    ="";
    $username="";
    $password="";
    $database="";
    require_once(
    "directorylist.php4class.php");
    $db=mysql_connect($host,$username,$password);
    mysql_select_db($database,$db);
    $dirlist=new directorylist("dump",true,true);
    for (
    $x=0;$x<count($dirlist->files);$x++)
        {
            echo 
    'Importing '.$dirlist->files[$x].'<br>';
            
    flush();
            
    $file=fopen("dump/".$dirlist->files[$x],"r");
            
    $content=fread($file,filesize("dump/".$dirlist->files[$x]));
            
    fclose($file);
            if (
    $dirlist->files[$x]!='create_table.sql')
                {
                    
    $statements=explode("\r\n",$content);
                    for (
    $y=0;$y<count($statements);$y++)
                        {
                            
    mysql_query($statements[$y],$db);
                        }
                }
            else
                {
                    
    mysql_query($content,$db);
                }
        }
    unset(
    $dirlist);
    mysql_close($db);
    ?>
    Hab den Thread auf Wunsch vom Doc nochmal aufgemacht damit noch Anpassungen gemacht werden koennen.
    Auf die Info in seiner PN hin hab ich auch noch mal das Export-Script ueberarbeitet sodass das PLZ-Feld nun fuehrende Nullen bekommt um immer 5-stellige Werte zu enthalten.
    Und auf Wunsch wieder geschlossen.
    Und wieder geoeffnet...

    Ich lass jetzt mal auf, falls durch die Aenderungen Fragen oder Probleme aufkommen sollten.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  10. #10
    Avatar von LoMo
    LoMo LoMo ist offline Benutzer
    Registriert seit
    Jun 2004
    Beiträge
    384
    Hat jemand die SQL-Dump auch mit den übergeordneten Regionen ?

    z.B.
    Bundesland | Bezirk | Landkreis | Ort | PLZ

    des währe optimal
     

  11. #11
    Avatar von xCondoRx
    xCondoRx xCondoRx ist offline Mitglied Brokat
    Registriert seit
    Apr 2004
    Beiträge
    399
    Guck mal, ob du hiermit was anfangen kannst..

    Neuer DUMP: Klick
    Angehängte Dateien Angehängte Dateien
    Geändert von xCondoRx (26.06.06 um 15:58 Uhr)
     

  12. #12
    Pollux Pollux ist offline Mitglied Gold
    Registriert seit
    Feb 2002
    Beiträge
    103
    Zitat Zitat von Dr Dau
    Es müssen insgesamt 44.188 Datensätze sein.
    Der letzte Datensatz muss "99998 Körten" lauten, sollte hier nur "99998 K" stehen habt ihr wahrscheinlich ein Fehler beim importieren gemacht (s.o.).
    Kann mir jemand helfen? Ich habe nur den 4er-Postleitzahlenbereich drin nach 2maligem Import.
     

  13. #13
    betrazivis betrazivis ist offline Grünschnabel
    Registriert seit
    Sep 2003
    Beiträge
    2
    Zitat Zitat von Dr Dau
    So, folgendes hat sich ergeben:
    1. Dadurch dass ich den Spaltentyp für "PLZ" von "varchar" auf "int" umgestellt hatte, wurden alle führenden Nullen der Postleitzahlen entfernt.

    2. Beim Import über den Dateiupload von phpMyAdmin wurden alle Zeichen der Ortsnamen ab dem Umlaut (sofern vorhanden) entfernt.
    Solltet ihr die Datensätze also über den Upload importieren, müsst ihr bei "Zeichencodierung der Datei" auf "latin1" umstellen.
    Dieses wirkt sich nicht auf die Kollation (UTF-8) der Tabelle "orte" bzw. der Spalte "Ort" aus, sondern dient nur der korrekten Zeichenerkennung der SQL-Dateien.

    3. Bei dieser Gelegenheit habe ich gleich mal die Scripte von Dennis getestet.
    Sowohl der Import als auch der Export funktionieren tadellos..... und dass sogar mit einer sehr guten Geschwindigkeit, so dass ihr eigentlich keine Probleme mit der max_execution_time (meisst 30 Sekunden) bekommen solltet.
    Somit sind die SQL-Dateien nun auch nach der Anfangszahl der Postleitzahl aufgeteilt.
    Die Aufteilung entspricht jedoch nicht den Bundesländern, sondern den Postleitzonen (so nenne ich es jetzt mal ).
    Näheres zu der Aufteilung der Zonen könnt ihr euch hier ansehen.

    Was Dennis sein Import-Script betrifft, habe ich beide Klassen (unter PHP5) getestet (Dateinamen der Klasse ggf. anpassen).

    Dennis hatte mir noch mitgeteilt dass er Probleme mit "DEFAULT CHARSET=utf8" hatte, dieses Problem liess sich für mich aber nicht reproduzieren.
    Jedenfalls hat Dennis sein Script entsprechend angepasst ("DEFAULT" wurde entfernt) und auch ich habe die "create_table.sql" gefixt, was problemlos funktioniert.

    Es müssen insgesamt 44.188 Datensätze sein.
    Der letzte Datensatz muss "99998 Körten" lauten, sollte hier nur "99998 K" stehen habt ihr wahrscheinlich ein Fehler beim importieren gemacht (s.o.).

    So, nun hoffe ich dass alle Probleme behoben sind und hänge die gefixten SQL-Dateien mit an.
    Also meine PLZ (Ginsheim 65462)stimmt schonmal nicht. Also is das Teil völlig unbrauchbar. Wenn noch mehr Fehler drin sind, was ich vermute..
     

  14. #14
    iMaTriX iMaTriX ist offline Rookie
    Registriert seit
    Mar 2007
    Beiträge
    6
    Zitat Zitat von betrazivis Beitrag anzeigen
    Also meine PLZ (Ginsheim 65462)stimmt schonmal nicht. Also is das Teil völlig unbrauchbar. Wenn noch mehr Fehler drin sind, was ich vermute..
    Da muss ich leider auch noch meinen Beitrag zugeben, den meine PLZ würde auch nicht stimmen (Rheinberg 47495) dort sind wenn dann nur die älteren vorhanden :/
     

  15. #15
    SirWayne SirWayne ist offline Mitglied Gold
    Registriert seit
    Apr 2006
    Beiträge
    129
    Also ich finde die files echt gut! Erspart jede menge arbeite ...
    Meine Frage ist gibt es sowas auch für die BLZ?
     

Ähnliche Themen

  1. MySQL: Suche mit Postleitzahlen und vier Tabellen
    Von Quests Sohn im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 01.05.09, 11:59
  2. mysql dump per PHP einlesen
    Von Tix im Forum PHP
    Antworten: 1
    Letzter Beitrag: 16.11.07, 18:40
  3. [MYSQL] Dump Viewer?
    Von Benzol im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 28.05.07, 03:26
  4. Grundsätzliches zum MySQL Dump
    Von joky_joky im Forum PHP
    Antworten: 0
    Letzter Beitrag: 26.08.05, 12:55
  5. mySQL Dump bei Rootserver
    Von Rici im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 06.02.03, 16:03