如何制作MySQL无限数组表?

时间:2015-04-03 21:00:53

标签: php mysql html-table infinite-loop infinite

我正在使用此代码为我的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

我该如何解决这个问题?我的代码有问题吗?为什么会这样?

3 个答案:

答案 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>';