Christian Leipnitz: CSV - mehrere Zeilen auslesen

Hallo zusammen,

ich konnte bisher leider nix zu meinem Problem finden.
Es geht darum, dass ich in eine CSV-Datei mehrere Zeilen speichere und diese später über PHP natürlich auch wieder auslesen möchte.

Mit _einer_ Zeile ist das ja kein Problem: Die Daten werden gesplittet und in Arrays gepackt, die ich dann beliebig verwenden kann.

Aber was mache, wenn ich mehrere Zeilen habe?
Ich kann - oder muss - doch dann sicher auch Arrays benutzen, oder?
Nur weiß ich leider nicht, wie ich z. B. die zweite oder Dritte Zeile der CSV-Datei ansprechen kann ... geht das überhaupt?

(Man merkt wahrscheinlich an meiner Beschreibung, dass ich ein ziemlicher Anfänger in Sachen PHP/CSV bin. *g*)

Vielleicht hat jemand Tipps oder Hinweise.

Besten Dank im Voraus,

  • Christian -
  1. ich konnte bisher leider nix zu meinem Problem finden.
    Es geht darum, dass ich in eine CSV-Datei mehrere Zeilen speichere und diese später über PHP natürlich auch wieder auslesen möchte.

    Mit _einer_ Zeile ist das ja kein Problem: Die Daten werden gesplittet und in Arrays gepackt, die ich dann beliebig verwenden kann.

    Aber was mache, wenn ich mehrere Zeilen habe?

    (Man merkt wahrscheinlich an meiner Beschreibung, dass ich ein ziemlicher Anfänger in Sachen PHP/CSV bin. *g*)

    Entschuldige bitte: RTFM :( Auch oder besser gesagt gerade als Anfänger kann man sich doch wirklich mal ein klein wenig Mühe geben und in der PHP-Anleitung lesen.
    Anscheinend kennst Du die Funktion fgetcsv() doch bereits? Warum schaust Du Dir nicht die Beschreibung (http://www.php.net/manual/de/function.fgetcsv.php) dazu an, inklusive des Beispiels.

    Gruß,
      soenk.e

    1. Hi!

      »»
      Entschuldige bitte: RTFM :( Auch oder besser gesagt gerade als Anfänger kann man sich doch wirklich mal ein klein wenig Mühe geben und in der PHP-Anleitung lesen.
      Anscheinend kennst Du die Funktion fgetcsv() doch bereits? Warum schaust Du Dir nicht die Beschreibung (http://www.php.net/manual/de/function.fgetcsv.php) dazu an, inklusive des Beispiels.

      Gruß,

      Du hast natürlich Recht. Ich hätte wahrscheinlich dazu schreiben sollen, dass ich bereits viele verschiedene PHP-Quellen durchsucht habe, aber mit dem Gefundenen nicht so richtig etwas anfangen konnte ...

      Gruß,

      • Christian -
  2. Hallo,

    <?php
    $mycsvarray=file("/path/to/csv.csv");

    for($i=0;$i<count($mycsvarray);$i++){
     echo "Zeile ".$i.": ";
     $element=explode(";",$mycsvarray[$i]);
     for($j=0;$j<count($element);$j++){
      echo $element[$j]." - ";
     }
     echo "\n";
    }
    ?>

    alles klar ?

    Ludwig

    1. Hallo,

      <?php
      $mycsvarray=file("/path/to/csv.csv");

      for($i=0;$i<count($mycsvarray);$i++){
      echo "Zeile ".$i.": ";
      $element=explode(";",$mycsvarray[$i]);
      for($j=0;$j<count($element);$j++){
        echo $element[$j]." - ";
      }
      echo "\n";
      }
      ?>

      alles klar ?

      Ludwig

    2. Hallo Ludwig,

      sorry, die andere Nachricht ist mir zu früh entwischt.

      »»
      <?php
      $mycsvarray=file("/path/to/csv.csv");

      for($i=0;$i<count($mycsvarray);$i++){
       echo "Zeile ".$i.": ";
        $element=explode(";",$mycsvarray[$i]);
        for($j=0;$j<count($element);$j++){
         echo $element[$j]." - ";
        }
        echo "\n";
       }
       ?>
      »»

      Dein Code hat mir schon ein ganzes Stück weitergeholfen - vielen Dank dafür!

      Nun ist es so, dass ich die verschiedenen Daten aus der CSV-Datei gern in Tabellen packen möchte. Momentan wird für jede ausgelesene Zeile eine neue Tabelle erstellt.
      Ideal wäre es aber, wenn bei - z. B. - fünf CSV-Zeilen eine Tabelle mit fünf Zeilen erstellt werden würde (und nicht fünf Tabellen).

      Ich hab' jetzt schon 'ne Weile rumprobiert (für mehr reicht es leider nicht), bin aber bis jetzt noch nicht dahinter gekommen.
      Hast Du vielleicht noch einen Hinweis?

      Danke im Voraus,

      • Christian -
      1. Hallo,

        Ich hab' jetzt schon 'ne Weile rumprobiert (für mehr reicht es leider nicht), bin aber bis jetzt noch nicht dahinter gekommen.
        Hast Du vielleicht noch einen Hinweis?

        Wie wär's mit so was wie:

        <?php
        $mycsvarray=file("/path/to/csv.csv");

        echo "<table>\n";
        for($i=0;$i<count($mycsvarray);$i++){
         echo "  <tr>\n";
          $element=explode(";",$mycsvarray[$i]);
          for($j=0;$j<count($element);$j++){
           echo "    <td>".$element[$j]."</td>\n";
          }
          echo "  </tr>\n";
          if ((($i+1) % 5) == 0) {
            echo "</table>\n";
            echo "<table>\n";
          }
         }
         ?>

        Grüße,

        Christian

        P.S. in diesem Forum funktioniert Quoting so:

        zeile1
        zeile2

        kein quote

        zeile3