我正在使用此代码为我的mysql查询创建一个无限表:
<table cellspacing='0'> <!-- cellspacing='0' is important, must stay -->
<!-- Table Header -->
<thead>
<tr>
<th>User</th>
<th>SteamID</th>
<th>Banned by</th>
<th>Admin SteamID</th>
<th>Time Banned (min)</th>
<th>Reason</th>
</tr>
</thead>
<!-- Table Header -->
<!-- Table Body -->
<tbody>
<?php
echo '<tr>';
for($i = 0; $bans = mysqli_fetch_array($query2); $i = ($i+1)%3){
echo '<td>'.$bans['name'].'</td>';
echo '<td>'.$bans['steamid'].'</td>';
echo '<td>'.$bans['nameAdmin'].'</td>';
echo '<td>'.$bans['steamidAdmin'].'</td>';
echo '<td>'.$bans['time'].'</td>';
echo '<td>'.$bans['reason'].'</td>';
if($i == 2)
echo '</tr><tr>';
}
echo '</tr>';
?>
</tbody>
我从Mysql fetch array, table results
获得了该代码它工作正常,但它没有正确地超过6行。无论出于何种原因,其他行都放在我最后一列的右侧,如此屏幕截图所示: http://puu.sh/h0qZF/a12de1dd87.png
我该如何解决这个问题?我的代码有问题吗?为什么会这样?
答案 0 :(得分:1)
好吧,你的循环毫无意义。使用$i
注入新行就像在这里完成一样,没有必要;您可以循环遍历每一行,然后将其作为一行输出:
<table>
<!-- <thead>...</thead> -->
<tbody>
<?php while ($bans = mysqli_fetch_array($query2)): ?>
<tr>
<td><?php echo $bans['name'] ?></td>
<td><?php echo $bans['steamid'] ?></td>
<td><?php echo $bans['nameAdmin'] ?></td>
<td><?php echo $bans['steamidAdmin'] ?></td>
<td><?php echo $bans['time'] ?></td>
<td><?php echo $bans['reason'] ?></td>
</tr>
<?php endwhile ?>
</tbody>
</table>
答案 1 :(得分:0)
按照指示here使用while循环。所以像这样:
$result = $conn->query($sql);
while($bans = $result->fetch_assoc()) {
echo '<td>'.$bans['name'].'</td>';
echo '<td>'.$bans['steamid'].'</td>';
echo '<td>'.$bans['nameAdmin'].'</td>';
}
答案 2 :(得分:0)
你正在制作两个专栏。
您的代码将每两组数据打印出表格行的结尾:
if($i == 2)
echo '</tr><tr>';
应该是echo '</tr><tr>';