Только LAST-кортеж, отображаемый в виде таблицы HTML, заполняется файлом с разделителями с помощью PHP - PullRequest
0 голосов
/ 10 декабря 2010

У меня есть такой тип записи в таблице HTML:

<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>

Я хочу прочитать в файле с разделителями, создать массив и заполнить таблицу: (пример записи)

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

Я пробовал это, но он отображает только последнюю запись из файла данных (/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>";}; 
?>

Чего мне не хватает?

Ответы [ 4 ]

4 голосов
/ 10 декабря 2010
foreach ($_SESSION['games_array'] as $v);{

должно быть

foreach ($_SESSION['games_array'] as $v) {
0 голосов
/ 10 декабря 2010

Это было проще, чем я думал ... Я допустил ошибку в повторном использовании старого ненужного кода из другого скрипта.

Я нашел это, и оно работает!

<?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>";}; 
?>

Дайте мне знать, если вы видите какие-либо улучшения или более быстрые функции. Спасибо!

0 голосов
/ 10 декабря 2010

у вас есть права доступа к этому файлу? Ваш php error_reporting настроен на отображение всех ошибок? Вы могли бы попробовать использовать только относительные пути, вы пробовали это? попробуйте использовать file_get_contents ...

0 голосов
/ 10 декабря 2010

Попробуйте с файлом ():

$lines = file('filename');

foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...