我是非常新的php和html,我试图创建一个来自数据库表记录集的这样的输出。其中“table record n”是db表记录集中的列
基本上该表将是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;
}
}
?>
答案 0 :(得分:0)
以上循环将始终回显<tr>
,因为当您到达if
时,$next_column
将始终为&gt; 1.您需要使用嵌套循环来遍历列。类似于this page上的代码应该有所帮助。虽然,如果你知道你需要它的确切格式,为什么不只是让你的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个表行。那是你想要做的吗?
编辑:如果你试图遍历每一行并根据THAT ROWS列数将其添加到表中,那么我会建议这样的事情:
<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个表列,但是填充了4列的行将有4个表列。