Daten aus txt in MySql schreiben

Hallo zusammen,

ich haben mir ein Formular gemacht, in dem ich Daten in Datenfelder gebe und diese dann per PHP in ein Textfile schreibe.

Die Daten im txt-File sehen so aus in etwa -->

abcd;efgh;asdf;asdf;wqer;oiuz;

Also immer nur eine Zeile, aber mit einem Semikolon getrennt.

Nun habe ich mir eine DB angelegt mit eben den Felder aus dem Formular, wie name, strasse, ort etc.

Sprich abcd = Name, efgh = Strasse und so weiter.

Jetzt möchte ich dies Daten aus dem txt-File per PHP in diese Datenbank schreiben.

Wie gehen ich hier vor? Also das händeln mit PHP txt und Mysql ist mir geläufig, aber nicht das wie ich die Daten da reinbekomme :frowning:

Gruß Rolf

abcd;efgh;asdf;asdf;wqer;oiuz;

das ja nicht so nett :smile: da fehlt am ende aber dann ein feld, bzw es ist leer .

du willst cvs dateien einlesen :smile:
LOAD DATA LOCAL INFILE

Wie gehen ich hier vor? Also das händeln mit PHP txt und Mysql
ist mir geläufig, aber nicht das wie ich die Daten da
reinbekomme :frowning:

eine csv hat einen trenner zwischen den elementen und ein zeichen am ende des datensatz.

bei

name;strasse;strasenr;ort;plz
name2;strassename;7;humburg;20000

ist ; der feldtrenner und \n das Zeilenende zeichen.

die reihenfolge der felder muss die gleiche sein im csv und in der datenbank , es sind keine lücken erlaubt , da alles 1 zu 1 übertragen wird.
sollte in einem Feld ein Trennzeichen vorkommen (z.b bei text eingaben) dann muss man das Feld in Anführungstriche setzen, da es sonst nicht ein satzzeichen ist sondern ein trenner.
Offt gibts probleme einen autoindex zu füllen.

name3;strassname;„7;8“;humburg;20000

Gruß Rolf

hoffe das funtzt .

Moin!

Irgendwie wirft das gerade die Frage auf, warum du nicht eher den Umgekehrten Weg gehst und die Daten jetzt in die DB schreibst und - sofern du die Dateien überhaupt brauchst - diese aus den DB-Inhalten generierst!?

Ansonsten kannst du den Inhalt aus der Datei z.B. mit file_get_contents() in eine Variable lesen, diese dann mit explode() in ein Array verwandeln und dann die Daten mit einem mysql_query() in die Datenbank schreiben.

Ich verstehe allerdings nicht ganz, wieso das so unklar ist, wenn dir der Umgang mit Dateien und Datenbank geläufig sind oder habe ich mich verlesen?

MfG
Lutz

:wink:
Klar da haste recht - nur ist es so das die Daten ja bei Mitgliedern eingegeben werden - diese dann per Mail geschickt werden und dann eben eingelesen werden :wink:

Gruß Rolf

da wo überal csv steht soll cvs stehen , oh man passiert so regelmäsig , nerft mich auch lol.

Hallo,

ja klar, nach dem letzten Datensatz kommt kein ; mehr.

Ich werd das mal versuchen, deinen Vorschlag und meld mich wieder.

Gruß Rolf

dann würde ich dir auch, wie oebn raten mit php die datei einlesen , exploden , insert string bauen , nächste zeile :smile:

das eigentlich nur fgets und explode und sql INSERT string erledigt.

dann kannst du auch gleich autoindex elemente füllen , oder noch ein eintragsdatum etc. das wäre mit der LOAD File function nicht so praktisch.

Hallo,

jop, grad hab ich deins versucht - aber das ist zu umständlich über den Server die Daten reinzusiehen.
Nein, klar ich wollte eh ein PHP-Script dafür haben.

Gruß Rolf