Вышеуказанный цикл всегда будет повторять <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 столбца таблицы.