如何制作 MySQL 无限数组 table?
How do I make a MySQL infinite array table?
我正在使用此代码为我的 mysql 查询创建无限 table:
<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
我该如何解决这个问题?我的代码有问题吗?为什么会这样?
按照说明使用 while 循环 here。所以像这样:
$result = $conn->query($sql);
while($bans = $result->fetch_assoc()) {
echo '<td>'.$bans['name'].'</td>';
echo '<td>'.$bans['steamid'].'</td>';
echo '<td>'.$bans['nameAdmin'].'</td>';
}
您正在创建两列。
您的代码将每两组数据打印出 table 行的末尾:
if($i == 2)
echo '</tr><tr>';
应该就是echo '</tr><tr>';
嗯,你的循环没有意义。没有必要使用 $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>
我正在使用此代码为我的 mysql 查询创建无限 table:
<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
我该如何解决这个问题?我的代码有问题吗?为什么会这样?
按照说明使用 while 循环 here。所以像这样:
$result = $conn->query($sql);
while($bans = $result->fetch_assoc()) {
echo '<td>'.$bans['name'].'</td>';
echo '<td>'.$bans['steamid'].'</td>';
echo '<td>'.$bans['nameAdmin'].'</td>';
}
您正在创建两列。
您的代码将每两组数据打印出 table 行的末尾:
if($i == 2)
echo '</tr><tr>';
应该就是echo '</tr><tr>';
嗯,你的循环没有意义。没有必要使用 $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>