php несколько альтернативных столбцов цикла
Я очень новичок в php и html, и я пытаюсь создать такой вывод, исходя из набора записей таблицы базы данных. где "запись таблицы n" - это столбец из набора записей таблицы базы данных
в основном таблица будет столбцом 1x2x1x2x4 с 5 строками
<table border=1>
<tr>
<td>table record 1 </td>
</tr>
<tr>
<td> table record 2 </td> <td>table record 3 </td>
</tr>
<tr>
<td> table record 4 </td>
</tr>
<tr>
<td> table record 5 </td> <td>table record 6 </td>
</tr>
<tr>
<td> table record 7 </td>
<td>table record 8 </td>
<td> table record 9 </td>
<td>table record 10</td>
</tr>
</table>
я только добрался до этого
$next_Column = 1;
echo "<tr>";
while ( $row = mysql_fetch_array( $result ) )
{
echo "<td>". $row['name']. "</td>";
$next_Column ++;
if( $next_Column > 1 )
{
echo "<tr>";
$next_Column = 1;
}
}
?>
1 ответ
Вышеуказанный цикл будет всегда повторять <tr>
потому что, когда вы добираетесь до if
, $next_column
всегда будет> 1. Вам нужно использовать вложенные циклы для обхода столбцов. Что-то вроде кода на этой странице должно помочь. Хотя, если вы ЗНАЕТЕ, что вам нужно именно в этом формате, почему бы просто не сделать свой php таким?
<table border=1>
<?php
while ( $row = mysql_fetch_array( $result ) )
{
echo '<tr><td>' . $row[0] . '</td></tr>';
echo '<tr><td>' . $row[1] . '</td><td>' . $row[2] . '</td></tr>';
echo '<tr><td>' . $row[3] . '</td></tr>';
echo '<tr><td>' . $row[4] . '</td><td>' . $row[5] . '</td></tr>';
echo '<tr><td>' . $row[6] . '</td><td>' . $row[7] . '</td>';
echo '<td>' . $row[8] . '</td><td>' . $row[9] . '</td></tr>';
}
?>
</table>
Обратите внимание, что все эти числа могут быть заменены именами столбцов в кавычках (например, 'name'
). Кроме того, приведенный выше код будет выдавать 5 строк таблицы для КАЖДОГО РЯДА в базе данных. Это то, что вы хотите сделать?
РЕДАКТИРОВАТЬ: Если вы пытаетесь перебрать каждую строку и добавить ее в таблицу, основанную на количестве столбцов ТАК, то я бы предложил что-то вроде этого:
<table border=1>
<?php
while ( $row = mysql_fetch_array( $result ) )
{
echo '<tr>';
//Loop through cols
foreach($row as $value)
{
if($value)
{
echo '<td>' . $value . '</td>';
}
}
echo '</tr>'
}
?>
</table>
Это поместит значение в строку таблицы ТОЛЬКО ЕСЛИ она находится в базе данных, поэтому, если у вас есть строка с 1 заполненным столбцом, вы получите 1 столбец таблицы, но строка с 4 заполненными столбцами будет иметь 4 столбца таблицы.