Wie bekomme ich diese Daten in eine mySQL Datenbank?

Hallo,

ich habe ein Textdokument mit PLZ + Ort für Deutschland, und würde dieses gerne als MySQL Datenbank nutzen.

Wie die Daten aussehen, habe ich am Ende eingefügt!

Das Problem ist, dass die Daten nicht den MySQL Syntax haben…

gibt es da Konverter oder eine andere Möglichkeit?

Vielen Dank,

Tim Weber

Beispiel:

DE 01945 Schwarzbach Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.45 13.9333 DE 01945 Lindenau Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4 13.7333 DE 01945 Tettau Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4333 13.7333 DE 01945 Grünewald Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4 14 DE 01945 Ruhland Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4667 13.8667 DE 01945 Hermsdorf Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4167 13.9 DE 01945 Hohenbocka Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4333 14 DE 01945 Guteborn Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4167 13.9333 DE 01945 Kroppen Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.3833 13.8 DE 01968 Schipkau Hörlitz Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5299 13.9508 DE 01968 Senftenberg Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5195 14.0007 DE 01968 Schipkau Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5456 13.9121 DE 01979 Lauchhammer Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5 13.7667 DE 01983 Neu-Seeland Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.6214 14.1309 DE 01983 Großräschen Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5833 14 DE 01987 Schwarzheide Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4653 13.868 DE 01990 Frauendorf Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4167 13.7667 DE 01990 Ortrand Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.3767 13.745 DE 01990 Großkmehlen Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.3833 13.7333 DE 01993 Schipkau Schipkau Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5101 13.8981 DE 01993 Schipkau Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5456 13.9121 DE 01994 Schipkau Annahütte, Herrnnmühle Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5558 13.8891 DE 01994 Schipkau Drochow Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5693 13.9237 DE 01994 Schipkau Annahütte Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5614 13.882 DE 01994 Schipkau Meuro Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5504 13.9244 DE 01994 Schipkau Annahütte, Annahütte Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5632 13.8955 DE 01994 Schipkau Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5456 13.9121 DE 01994 Schipkau Annahütte, Karl-Marx-Siedlung Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5641 13.8692 DE 01994 Schipkau Annahütte, Annahütte-Siedlung Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5623 13.8742 DE 01996 Hosena Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.4534 14.0298 DE 01998 Schipkau Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5456 13.9121 DE 01998 Schipkau Klettwitz Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5422 13.8994 DE 01998 Schipkau Meuro Brandenburg BB 00 Oberspreewald-Lausitz 12066 51.5504 13.9244

Hi,

Du könntest versuchen das ganze in eine Tabellenverarbeitung zu pressen und eine Excel- oder CSV-Datei daraus zu erstellen, die wiederum in SQL eingelesen werden kann.

Hallo,

Kennst du eine Lösung, wie man .CSV Dateien in eine MySQL Datenbank einlesen kann?

“Einfach so” mit phpMyAdmin / MySQLDumper geht das nicht, und wenn man sucht findet man (fast) nur Seiten von 2004/5 mit Programmen die nichtmehr funktionieren.

MfG

Tim

Wenn die Trennung der jeweiligen Werte immer gleich ist, kannst du das ganze mit str_replace erstmal mit einem trennzeichen zusammenbasteln, um es dann mit einem explode auseinander zu fluecken (array maessig). Somit koenntest du die Reihenfolge der Spalten variabel gestalten. Waeren vllt 20-30 Zeilen… :slight_smile:

Hi Mr. Generation,

macht str_replace nicht bei Städten wie “Herxheim am Berg” Probleme?

Wie will ich dem PHP Programm sagen, dass es sich hier um einen Ausdruck handelt, und “am” nicht schon in die nächste Spalte gehört?

EXCEL liest das Ganze perfekt ein, und erkennt auch die Spalten, somit wäre ein Import perfekt - Wenn es da eine Möglichkeit gäbe.

So sieht das Ganze in EXCEL aus:

img137.imageshack.us/img137/9334/excelo.png

MfG

Tim

PHPmyAdmin kann mit Excel umgehen…

hallo leute^^

habt ihr euch schonmal die import-funktion von phpmyadmin angesehn?
wenn ihr als format CSV auswählt, könnt ihr direkt einstellen, was das trennzeichen ist (sieht hier nach tab aus)

[quote]Spalten getrennt mit:
Spalten eingeschlossen von:
Spalten escaped mit:
Zeilen enden auf:[/quote]

wieso hundert mal rumkonvertieren und mit php str_replace etc arbeiten… .einfach importieren?

@ Emil:

Dann müsste ich in EXCEL am Anfang und Ende nochmal Spalten machen, die die Zeichen für phpMyAdmin enthalten.

Exportiere ich einfach so in csv, kommt sowas bei raus:

DE;1945;Schwarzbach;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;51.45;139.333; DE;1945;Lindenau;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;51.4;137.333; DE;1945;Tettau;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;514.333;137.333; DE;1945;Grünewald;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;51.4;14; DE;1945;Ruhland;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;514.667;138.667; DE;1945;Hermsdorf;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;514.167;13. Sep; DE;1945;Hohenbocka;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;514.333;14; DE;1945;Guteborn;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;514.167;139.333; DE;1945;Kroppen;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;513.833;13. Aug; DE;1968;Schipkau Hörlitz;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;515.299;139.508; DE;1968;Senftenberg;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;515.195;140.007; DE;1968;Schipkau;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;515.456;139.121; DE;1979;Lauchhammer;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;51.5;137.667; DE;1983;Neu-Seeland;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;516.214;141.309; DE;1983;Großräschen;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;515.833;14; DE;1987;Schwarzheide;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;514.653;13.868; DE;1990;Frauendorf;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;514.167;137.667; DE;1990;Ortrand;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;513.767;13.745;

Also könnte ich schonmal schreiben:

Spalten getrennt mit: ;

Die anderen 3 verstehe ich nicht ganz:

Spalten eingeschlossen von: Ok, da könnte man " xxxx " wählen
Spalten escaped mit: Hm, ist das nicht doppelt gemoppelt? " xxxx [b][/b]"
Zeilen enden auf: Und hier noch ein 3. mal? " xxxx "

Dann würde eine Zeile so aussehen:

"DE;1945;Schwarzbach;Brandenburg;BB;0;Oberspreewald-Lausitz;12066;51.45;139.333;\"

Warum werden da Zeichen doppelt, und in Kombination abgefragt? :ps:

Tim

[quote=“kauderwelsch”]Hi Mr. Generation,

macht str_replace nicht bei Städten wie “Herxheim am Berg” Probleme?

Wie will ich dem PHP Programm sagen, dass es sich hier um einen Ausdruck handelt, und “am” nicht schon in die nächste Spalte gehört?[/quote]

Da das am nur durch eine Leerstelle und nicht mindestens eine mehr (wie eben die anderen Werte die auseinander gehoeren) waere das kein Problem, du wuerdest nicht nach einer Leerstelle filtern, sondern nach eben genau der Anzahl die du dazwischen hast.

@emil: Bin nur auf seine Frage eingegangen ~ :slight_smile:

— gelöst ----