Excel CSV nach MySQL will nich!

balufreak

balufreak

Aktives Mitglied
Thread Starter
Dabei seit
12.10.2003
Beiträge
1.563
Reaktionspunkte
28
Hallo leute!

Ich möchte gerne das alle Postleitzahlen der Schweiz mit dem entsprechenden Kanton und Ortnamen in eine MySQL Tabelle einfügen. Soweit so gut. Nun habe ich jetzt so eine Liste im Internet gefunden (www.post.ch). Diese ist an und für sich schon CSV. Aber da hat es auch noch spalten, welche ich gar nicht brauche. Also dachte ich mir, ich importiere diese in Excel.
Habe also da die überflüssigen spalten gelöscht und wieder nach CSV exportiert. Nun wie kann ich das CSV-File mit phpMyAdmin einlesen? ich habe schon alles versucht. Es wird nur eine Zeile eingelesen bzw. eingefügt.

Was macht denn Excel für Zeilenumbrüche in den CSV Dateien?
 
balufreak schrieb:
Hallo leute!

Ich möchte gerne das alle Postleitzahlen der Schweiz mit dem entsprechenden Kanton und Ortnamen in eine MySQL Tabelle einfügen. Soweit so gut. Nun habe ich jetzt so eine Liste im Internet gefunden (www.post.ch). Diese ist an und für sich schon CSV. Aber da hat es auch noch spalten, welche ich gar nicht brauche. Also dachte ich mir, ich importiere diese in Excel.
Habe also da die überflüssigen spalten gelöscht und wieder nach CSV exportiert. Nun wie kann ich das CSV-File mit phpMyAdmin einlesen? ich habe schon alles versucht. Es wird nur eine Zeile eingelesen bzw. eingefügt.

Was macht denn Excel für Zeilenumbrüche in den CSV Dateien?

Wenn nur eine Zeile eingefügt wird, liegt es ganz bestimmt am Zeilenumbruch. Um sicher zu gehen, habe ich mir gerade bei post.ch eine PLZ-Liste heruntergeladen, in Excel 2004 importiert, auf eine Spalte reduziert, als CSV (und nicht CSV, MS-DOS oder CSV, WINDOWS) exportiert, häufig auf "Ja, doch" geklickt und anschließend meine CSV-Datei auf dem Desktop gefunden.

In phpMyAdmin 2.7.0-pl2 auf MySQL-4.1.15 habe ich mit diesen Einstellungen volle Punktzahl:

importpma.png
 
also ich habe jetzt mal das neueste phpmyadmin heruntergeladen (2.7.0-pl2)
Habe auf meinem PB MySQL 5.0.15-standard drauf.

Der Import wird zwar gemacht, jedoch werden nicht alle 5334 Datensätze eingefügt :( woran liegt das?
Edit: Es werden immer genau 3507 Datensätze eingefügt.

Vielleicht kann mir ja einer kurz eine Tabelle machen und mir den MySQL-dump schicken.

Hier ein Link zu den Dateien: http://downloads.katun.ch/plz_swiss.zip
 
Das liegt zumeist an der Höchstgrenze importierbarer Dateien, die per POST vom Server an den PHP-Parser gereicht werden. In meinem Screenshot siehst Du rechts oben, neben dem Dateinamen "Arbeitsmappe2.csv" die Angabe, wieviel höchstens erlaubt ist, über den Browser "hochzuladen" (auch wenn's bei Dir lokal ist).

Du kannst natürlich die Datei per Kommandozeile ebenso einfach importieren, wenn Du Dich dort auskennst ("LOAD DATA LOCAL INFILE...") oder einfach und geschwind die Konfigurationsdatei von PHP so modifizieren, dass mehr Bytes akzeptiert werden.

Dazu suchst, findest und öffnest Du die Datei "php.ini" (bei der Verwendung des aktuellen PHP5-Moduls von Marc Liyanage liegt diese unter /usr/local/php5/lib/php.ini) und vergrößerst den Parameter "post_max_size" auf sagen wir 16M. Und schon kannst Du die Datei importieren.

Diese Spielereien an "post_max_size" solltest Du übrigens besser nicht in öffentlichen Produktiv-Umgebungen vornehmen, wenn Du nicht genau weißt, was Du tust. ;)
 
Hab den fehler jetzt gefunden.

Ich habe zunächst noch ein Import mit dem Tool "YourSQL" versucht. Dieses hatte mir auch genau diese 3507 Datensätze angelegt. Also kann es nicht an der Clientsoftware liegen.
Hab danach mal die Indexes und Primarykeys geprüft. Und siehe da... Ohne den Primarykey auf der PLZ Spalte funktioniert es.
Ich bin natürlich davon ausgegangen, dass es eine PLZ in der Schweiz wirklich nur einmal gibt. Dem ist aber anscheinend nicht so. :(
Naja wieder was gelernt!
Vielen Dank für die Hilfe!
 
Sehr schön!

Inzwischen habe ich Deine Datei ge-SQLt.

Hepp, fang auf.
 
:D Danke ;)
Habe gerade den selben Dump vor mir. wurde einfach eine Minute früher erstellt. :p Aber trozdem danke!
 
Zurück
Oben Unten