2012-07-02 5 views
0

В настоящее время я нахожусь в проекте, где мне нужна информация, которую нужно отправить в файл csv, а затем прочитать, чтобы предыдущая информация была видна, а затем отредактирована пользователем. Подобно таблице базы данных, где информация будет в ячейке, она должна быть рядом с рядом текста в другой строке.Прочтите файл .CSV в PHP как таблицу

В тот момент, когда мой код имеет две таблицы, один из которых показывает информацию из csv и тот, который отправляет данные в csv, но я хочу, чтобы это было объединено, чтобы они могли видеть, что было ранее созданной информацией, а затем они могут редактировать эту информацию, нажав кнопку «Отправить», и это информация, которая будет отображаться в таблице.

Вот мой код на минуту ...

$myfile = "outputfile.csv"; 
if (!isset($_POST['submit'])) { 
$f = fopen($myfile, 'r'); 
echo "<table>"; 
while (($line = fgetcsv($f)) !== false) { 
    echo "<tr>"; 
    foreach ($line as $cell) { 
     echo "<td>" . htmlspecialchars($cell) . "</td>"; 
    } 
    echo "</tr>\n"; 
} 
fclose($f); 
echo "\n</table>"; 
echo " 
<form action='' method='POST'> 
<table border='1'> 
    <tr> 
     <td><input name='var1' type='text'></td> 
     <td>MMR</td> 
    </tr> 
    <tr> 
     <td><input name='var2' type='text'></td> 
     <td>FIVE_IN_ONE</td> 
    </tr> 
    <tr> 
     <td><input name='var3' type='text'></td> 
     <td>BOOSTER</td> 
    </tr> 
    <tr> 
     <td><input name='var4' type='text'></td> 
     <td>MENC</td> 
    </tr> 
</table> 
<input name='submit' type='submit' value='Submit'> 
</form>"; 
} else { 
    $text1 = $_POST['var1']; 
    $text2 = $_POST['var2']; 
    $text3 = $_POST['var3']; 
    $text4 = $_POST['var4']; 

    $fh = fopen($myfile, 'w+'); 
    fwrite($fh, $text1 . "\r\n" . $text2 . "\r\n" . $text3 . "\r\n" . $text4); 
    fclose($fh); 

    echo $text1 . "<br>" . $text2 . "<br>" . $text3 . "<br>" . $text4; 
} 
+0

... и в чем ваш вопрос? – Doa

+0

Вопрос в том, как сделать каждую новую строку в файле CSV в новой строке таблицы с MMR, BOOSTER и т. Д., Находящимися в правой части цикла. Я не хочу две отдельные таблицы, я хочу, чтобы таблицы были объединены. И я хочу, чтобы вы могли удалять и/или редактировать увиденную информацию. Извините, но я мусор, объясняя что-то, даже если это у меня в голове. – CheckeredMichael

ответ

0

PHP имеет функциональность CSV построен в:

$arrayOfValues = str_getcsv(file_get_contents('myfile.csv')); 
foreach($arrayOfValues as $row) 
{ 
    foreach($row as $col) 
    { 
    echo $col . '&nbsp;'; 
    } 
    echo '<br>'; 
} 
+0

Спасибо, я это знаю. Но я бы хотел, чтобы мой MMR, BOOSTER справа от одной таблицы, был объединен с показанной таблицей, и вы можете редактировать текст, показанный в файле csv ... – CheckeredMichael

+0

Итак, объедините все свои данные в один и тот же массив , затем перепишите весь файл. – Lusitanian

+1

Привет, я не думал об этом, как о LOL. – CheckeredMichael

0

Как сказал Дэвид, использование str_getcsv. Чтобы разместить все на своем месте, чтобы люди могли жить-редактировать, вы хотите отобразить форму следующим образом:

$arrayOfValues = str_getcsv(file_get_contents('myfile.csv')); 
foreach($arrayOfValues as $row) 
{ 
    $index=0; 
    echo "<tr>"; 
    foreach($row as $col) 
    { 
    echo "<td><input name='var".$index."' type='text' value='".$col."'></td>"; 
    $index++; 
    } 
    echo "</tr>"; 
} 
+0

На самом деле, вы должны указать имена переменных для уникальных переменных. var_x_y, чтобы вы могли просто прокручивать имена, от var_0_0 до var_m_n. – Doa

+0

Спасибо, вы и Дэйв много помогли. – CheckeredMichael

Смежные вопросы