我在从MySQL表中显示多个列时遇到问题 这很简单 - 我有28条记录,我想要制作7行4 - 每条记录只有两列 - id#和name(表中的“handle”)。
当我使用
时,我的问题是什么> $i<$cols
我得到四列,但第四列是空白的,每四个记录都被跳过(#4,#8等)简单我说...只需要$row && $i<=$cols
添加&lt; ; =以$i
变量为条件...但是它只是忽略if语句并显示整个页面中的所有记录。
我究竟做错了什么?我需要另一个if
声明吗?不知道我哪里错了......
这是我到目前为止所处的位置:
// Table header.
echo '<center><table align="center" BLAH BLAH BLAH</b></td></tr><tr>';
do {
// Fetch and print all the records:
$cols = 4;
for($i=1;$i<=$cols;$i++){
$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
if($row && $i<$cols){
echo '<td align="center" bgcolor="' . '#' . $row['color'] . '"><b>' .
$row['player_id'] . '</td></b><td align="left" bgcolor="' . '#' .
$row['color'] . '"><b>' . strtoupper($row['handle']) . '</td></b>';
}
else {
echo '</tr>';
}
}
}
while ($row);
echo '</table></center>'; // Close the table.
答案 0 :(得分:0)
只需将echo '</tr>'
移到for循环之外。让do ... while循环打开并关闭<tr>
标记:
// Table header.
echo '<center><table align="center" BLAH BLAH BLAH</b></td></tr>';
do {
echo '<tr>';
// Fetch and print all the records:
$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
if($row){
echo '<td align="center" bgcolor="' . '#' . $row['color'] . '"><b>' .
$row['player_id'] . '</b></td><td align="left" bgcolor="' . '#' .
$row['color'] . '"><b>' . strtoupper($row['handle']) . '</b></td>';
}
echo '</tr>';
} while ($row); echo '</table></center>'; // Close the table.
编辑:刚刚意识到你不需要for循环。