如何制作 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>