2010-12-09 4 views
-1

Ich habe diese Art der Aufzeichnung in einer HTML-Tabelle:Nur LAST Tupel als HTML-Tabelle angezeigt wird, mit getrennten Datei bevölkert mit PHP

<tr class="simplehighlight" onclick="window.location.href='./games/game191.php';"> 
<td>06/09/2007</td><td>Jennifer Woods Memorial Grand Prix</td><td>C54</td> 
<td>Nikolayev, Igor</td><td>2431</td><td>Parry, Matt</td><td>2252</td><td class="text-center">1-0</td></tr> 

ich in einer getrennten Datei lesen möchten, eine Reihe zu machen, und füllen die Tabelle: (Beispieldatensatz)

game191|06/09/2007|Jennifer Woods Memorial Grand Prix|C54|Nikolayev, Igor|2431|Parry, Matt|2252|1-0 

ich versuchte dies, aber es zeigt nur die letzte Datensatz aus der Daten-Datei (/games.csv)

<?php 
// open delimited data file "|" if needed and read. 
//game191|06/09/2007|Jennifer Woods Memorial Grand Prix|C54|Nikolayev, Igor|2431|Parry,   Matt|2252|1-0 

if(!isset($_SESSION['games_array'])) {$file = $_SERVER['DOCUMENT_ROOT'].'/games.csv'; 
$fp = fopen($file,"r"); $list = fread($fp, filesize($file)); 
$_SESSION['games_array'] = explode("\n",$list); fclose($fp);} 

// extract variables from each tuple by iteration 
foreach ($_SESSION['games_array'] as $v);{ 
$token = explode("|", $v); 

//write the table row and table data 
echo "<tr class=\"simplehighlight\" onclick=\"window.location.href='./games/"; 
echo $token[0]; echo ".php';\">"; 
echo "<td>";echo $token[1];echo "</td>"; echo "<td>";echo $token[2];echo "</td>"; 
echo "<td>";echo $token[3];echo "</td>"; echo "<td>";echo $token[4];echo "</td>"; 
echo "<td>";echo $token[5];echo "</td>"; echo "<td>";echo $token[6];echo "</td>"; 
echo "<td>";echo $token[7];echo "</td>"; 
echo "<td class=\"text-center\">"; echo $token[8];echo "</td>"; 
echo "</tr>";}; 
?> 

Was fehlt mir?

Antwort

4
foreach ($_SESSION['games_array'] as $v);{ 

sollte

foreach ($_SESSION['games_array'] as $v) { 
+0

Wenn ich einen Cent für jedes Mal hätte, hätte ich diesen Fehler gemacht ... nun, ich hätte sowieso ein paar Groschen. – AgentConundrum

+0

+1 für scharfe Augen – devrooms

0

Versuchen mit file():

$lines = file('filename'); 

foreach ($lines as $line_num => $line) { 
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; 
} 
0

haben Sie die richtigen Berechtigungen, die Datei zugreifen? Ist Ihr PHP-Fehlerbericht so eingestellt, dass alle Fehler angezeigt werden? du könntest versuchen, nur relative Pfade zu benutzen, hast du das probiert? Versuchen Sie es mit file_get_contents ...

0

Es war einfacher als ich dachte ... Ich habe mich bei der Wiederverwendung von alten Junk-Code aus einem anderen Skript geirrt.

Ich fand dies und es funktioniert!

<?php 
$text = file('games.csv'); foreach($text as $line) {$token = explode("|", $line); 
echo "<tr class=\"simplehighlight\" onclick=\"window.location.href='./games/"; 
echo $token[0]; echo ".php';\">"; 
echo "<td>";echo $token[1];echo "</td>"; echo "<td>";echo $token[2];echo "</td>"; 
echo "<td>";echo $token[3];echo "</td>"; echo "<td>";echo $token[4];echo "</td>"; 
echo "<td>";echo $token[5];echo "</td>"; echo "<td>";echo $token[6];echo "</td>"; 
echo "<td>";echo $token[7];echo "</td>"; 
echo "<td class=\"text-center\">"; echo $token[8]; echo "</td>"; 
echo "</tr>";}; 
?> 

Lassen Sie mich wissen, wenn Sie Verbesserungen oder schnellere Funktionen sehen. Vielen Dank !

+0

Es funktioniert, weil Ihre 'foreach' die richtige Syntax verwendet, während Ihr ursprüngliches Beispiel nicht funktioniert (siehe meine Antwort oben). Und noch ein Vorschlag: Verwenden Sie den richtigen Einzug - es wird Ihnen helfen, diese Art von Fehler zu finden. – Lee

+0

Ich verwende meistens einzelnes Zitat. Auf diese Weise können Sie doublequotes in Ihrer Zeichenkette verwenden, ohne sie zu umgehen. Den Code lesbarer machen. Und wenn einzelne Anführungszeichen verwendet werden, wird die Zeichenfolge nicht analysiert. In Bezug auf die Leistung ist es jedoch kein großer Unterschied. – PeeHaa

Verwandte Themen