Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: CSV einlesen und jede Zeile speichern

  1. #1
    König(in)
    Registriert seit
    03.07.2004
    Ort
    Rosenheim
    Beiträge
    1.024
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard 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:
    Code:
    <?php
       $zeilen = file&#40;'address.csv'&#41;;
       
       foreach&#40;$zeilen as $zeile&#41; &#123;
         echo nl2br&#40;htmlspecialchars&#40;$zeile&#41;&#41;;
         $zeile = explode&#40;';', $zeile&#41;;
         $fertig = array&#40;"name" => $zeile&#91;0&#93;, "anrede" => $zeile&#91;1&#93;, "apartner" => $zeile&#91;2&#93;, "email" => $zeile&#91;3&#93;&#41;;
       &#125;
    
      print_r&#40;$fertig&#41;;
    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
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Fortgeschrittene/r
    Registriert seit
    30.09.2006
    Beiträge
    150
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Mache es doch so

    Code:
    $id='1';
    $file='CSV.csv';
    $handle=fopen&#40;$file, "r"&#41;;
    $contents=fread&#40;$file, filesize&#40;$file&#41;;
    fclose&#40;$handle&#41;;
    
    $sql="UPDATE Inhalt SET Contents='".nl2br&#40;htmlspecialchars&#40;strip_tags&#40;$contents,ET_QUOTES&#41;&#41;&#41;."' WHERE ID='".$id."' LIMIT 1";
    
    //query abschicken usw.
    wenn du die komplette Datei in einen Datenbank Spalte Speichern möchtest.
    Suchst du kostenlose Scripte ?

    dann klick hier
    http://rescue-center.de

  3. #3
    König(in)
    Themenstarter

    Registriert seit
    03.07.2004
    Ort
    Rosenheim
    Beiträge
    1.024
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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.

  4. #4
    Fortgeschrittene/r
    Registriert seit
    30.09.2006
    Beiträge
    150
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Wie wurde die CSV Datei den erstellt ?

    Per script ?
    Suchst du kostenlose Scripte ?

    dann klick hier
    http://rescue-center.de

  5. #5
    König(in)
    Themenstarter

    Registriert seit
    03.07.2004
    Ort
    Rosenheim
    Beiträge
    1.024
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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

  6. #6
    Fortgeschrittene/r
    Registriert seit
    30.09.2006
    Beiträge
    150
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ja dann musst du das array verschachteln

    Code:
       $fertig=array&#40;&#41;;
       $zeilen = file&#40;'address.csv'&#41;;
       $i=0;
    
       foreach&#40;$zeilen as $zeile&#41; &#123;
         echo nl2br&#40;htmlspecialchars&#40;$zeile&#41;&#41;;
         $zeile = explode&#40;';', $zeile&#41;;
         $fertig &#91;$i&#93;= array&#40;"name" => $zeile&#91;0&#93;, "anrede" => $zeile&#91;1&#93;, "apartner" => $zeile&#91;2&#93;, "email" => $zeile&#91;3&#93;&#41;;
        $i++;
       &#125;
    
      print_r&#40;$fertig, true&#41;;
    Suchst du kostenlose Scripte ?

    dann klick hier
    http://rescue-center.de

  7. #7
    König(in)
    Themenstarter

    Registriert seit
    03.07.2004
    Ort
    Rosenheim
    Beiträge
    1.024
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hatte ich selbst auch schon probiert, nur wenn ich das so sehe hab ich das etwas falschrum gemacht, dann weiß ich jetzt wie das geht .

    Danke für die Hilfe!

  8. #8
    König(in)
    Themenstarter

    Registriert seit
    03.07.2004
    Ort
    Rosenheim
    Beiträge
    1.024
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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

  9. #9
    Fortgeschrittene/r
    Registriert seit
    30.09.2006
    Beiträge
    150
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    versuch es mal mit strip_tags :

    strip_tags($contents, ENT_QUOTES) der müsste Sie umwandeln oder mit str_replace("'", "", $source);
    Suchst du kostenlose Scripte ?

    dann klick hier
    http://rescue-center.de

  10. #10
    König(in)
    Themenstarter

    Registriert seit
    03.07.2004
    Ort
    Rosenheim
    Beiträge
    1.024
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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!

Ähnliche Themen

  1. Zeile einlesen
    Von driver im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 08.02.2008, 10:57
  2. Daten aus CSV-Datei einlesen und in MySQL speichern
    Von tiw im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 20.11.2006, 14:01
  3. Für jede Ausgabe eigenes Tooltip...
    Von DVDFreak im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 15
    Letzter Beitrag: 01.12.2005, 17:20
  4. Zeile auslesen und woanders speichern!
    Von Ivanman im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 03.11.2005, 14:38
  5. Js jede 10 Min. Downloadlink veränderrung
    Von Paul im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 18.10.2005, 23:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •