2016-04-30 12 views
0

So experimentierte ich mit jedem Schleifen in PHP als eine Möglichkeit zum Lesen und Anzeigen der Inhalte einer CSV-Datei. Das habe ich bisher:Für jede Schleife in PHP

$file = file("games.csv"); 
foreach($file as $k) 
    $csv = explode(',',$k); 
    echo "<tr> 
     <td>$csv[0]</td> 
     <td>$csv[1]</td> 
     <td>$csv[2]</td> 
     <td>$csv[3]</td> 
     <td>$csv[4]</td> 
     </tr>"; 
?> 

Es funktioniert, zeigt aber nur den letzten Datensatz in der CSV-Datei. Warum ist das? Bis ich verstehen kann, warum, ich glaube nicht, dass ich das Problem beheben kann und alle Datensätze angezeigt werden

+0

foreach body fehlt –

+0

Vielen Dank für Ihre Antworten. Dies hat mir definitiv geholfen, den Zweck von geschweiften Klammern zu verstehen! Danke Gott für den Stack-Überlauf und all die guten Leute, um Amateure wie mich zu unterstützen – MissDizy

Antwort

2

hinzufügen geschweiften Klammern {} um den Körper Ihres foreach. Die Syntax, die Sie verwenden, bedeutet nur die erste Zeile wird geloopt.

foreach($file as $k) { 
    $csv = explode(',',$k); 
    echo "<tr> 
     <td>$csv[0]</td> 
     <td>$csv[1]</td> 
     <td>$csv[2]</td> 
     <td>$csv[3]</td> 
     <td>$csv[4]</td> 
     </tr>"; 
} 
0

versuchen, wie dies zu tun, in Ihrem aktuellen Syntax wird es in der ersten Zeile als Teil foreach Körper betrachten, ist dies der Grund, warum es nur letzte Zeile Sie CSV-Datei Echo. Diese

<?php 
    $file = file("games.csv"); 
    foreach($file as $k) 
    { 
     $csv = explode(',',$k); 
     echo "<tr> 
      <td>$csv[0]</td> 
      <td>$csv[1]</td> 
      <td>$csv[2]</td> 
      <td>$csv[3]</td> 
      <td>$csv[4]</td> 
     </tr>"; 
    } 
?> 
0

ist, warum alle Steuerblöcke (ifs und Schleifen) sollten in Klammern gewickelt werden ... Ihr Code nur Looping die erste Aussage sofort die foreach folgen.

$file = file("games.csv"); 
      foreach($file as $k) { 
       $csv = explode(',',$k); 
       echo "<tr> 
         <td>$csv[0]</td> 
         <td>$csv[1]</td> 
         <td>$csv[2]</td> 
         <td>$csv[3]</td> 
         <td>$csv[4]</td> 
        </tr>"; 
      } 

     ?>