CSV einlesen und jede Zeile speichern

  • Hallo,

    habe folgendes vor mit einer CSV Datei.
    Möchte jede Zeile einlesen und diese dann in eine Datenbank schreiben.

    Meine CSV hat diesen aufbau:

    Name;Anrede,Ansprechpartner;EMail
    Bernd Huber;Herr;Bernd Huber;berndhuber @ gmx.de
    Max Muster;Herr;Max Muster;maxmuster @ freenet.de
    Daniel M;Herr;Daniel M;daniel.m1990 @ email.de
    usw...

    (Die E-Mail Adressen hab ich erfunden und leerschritte gesetzt die normal nicht dort stehen)

    Nun hab ich bereits folgendes selbst hinbekommen:

    Mein Problem nun jetzt schon ist, dass der ja nur die letzte Zeile in das Array schreibt, da der die ja bei jedem Schleifen durchlauf überschreibt.

    Wie kann ich denn jede Zeile schön in den Array speichern? ist das mit dem Array überhaupt so eine Gute Idee? Will ja danach in die Datenbank schreiben?

    Danke für Hilfe :)

    MfG Mülla

  • Mache es doch so

    wenn du die komplette Datei in einen Datenbank Spalte Speichern möchtest.

  • Hi,

    danke für die Antwort, aber ich möchte es ja nicht in eine Spalte speichern, sondern in 4 Spalten, und jede Zeile der Datei in eine eigene Zeile in der DB, deshalb auch das assoziative Array.

    Das Script soll eine Adresstabelle über ein CSV Datei aktualisieren.

  • Die CSV kommt aus einem WWS, dass halt lokal auf läuft. Also ist nicht im Web. Dort werden alle Kundendaten gepflegt, diese Daten können als Exceldatei bzw CSV exportiert werden. Und da nun über die Website E-Mails verschickt werden sollen, soll die Adresstabelle immer schön aktualisiert werden. Da hab ich vor, die CSV einfach über ein PHP Script einlesen zu lassen, dann in die DB einlesen und halt wenn schon adressen vorhanden diese nicht einzutragen und so kleinigkeiten, das bekomm ich selbst hin.

    Mein Problem ist halt, dass meine Schleife die alle Datensätze ausliest (über echo auch alle brav anzeigt), nur nicht alle in ein Assoziatives Array packt, wo ich die später über ne Schleife in die DB eintragen könnte, so hatte ich mir das jetzt gedacht.
    Hab es probiert mit array_push, aber das geht meines wissens eh nicht dabei.

    MfG

  • Ja dann musst du das array verschachteln

  • Hi, hab da doch nochmal eine Frage...

    habe meine Script fertig, aber wenn ich die Datei einlese dann bekomm ich einen Schreibfehler. Da hab ich gesehen, dass in ein paar Namen Hochkommas drin sind, wo ich denke die stören das eintragen in die DB.

    Wie kann ich denn escapen? habs mit real_escape_string ausprobiert, ging nicht, hab versucht alle hochkommas ersetzen zu lassen, brachte aber auch nix :(

    danke für Hilfe.

    MfG

  • strip_tags hab ich noch nicht probiert, aber mit str_replace hab ich schon probiert, es sind ja die einzelnen Hochkommas die schwierigkeiten machen, die Anführungszeichen funktionieren. strip_tags muss ich mal ausprobieren. Leider erst heute Abend nach der Arbeit... Danke schonmal!

  • Moin!

    'strip_tags' ist eine schlechte Lösung, da du damit die Schreibweise der Namen ja änderst, aus "Pierre l'Grande" würde dann ja unwiederrufbar "Piere LGrand" - da wird der Herr sich freuen, wenn er von dir Post bekommt.

    Besser:
    'addslashes' setzt ein Schutzzeichen vor das einache oder doppelte Hochkomma: "Pierre l\'Grande". Du mußt es dann allerdings wieder mit 'stripslashes' entfernen, wenn du die Daten wieder abrufst.

    G.a.d.M.

    Ronald