Как мне сделать MySQL бесконечной таблицы массивов?

Я использую этот код для создания бесконечной таблицы для моих запросов 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 выборочный массив, таблица результатов

Он работает нормально, за исключением того, что он НЕ ПРАВИЛЬНО идет дальше, чем на 6 рядов. Другие строки по любой причине размещены справа от моего последнего столбца, как показано на этом снимке экрана:
http://puu.sh/h0qZF/a12de1dd87.png

Как я могу это исправить? Что-то не так с моим кодом? Почему это происходит?

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

Другие решения

Вы делаете две колонки.

У вас есть код, который будет распечатывать конец строки таблицы каждые два набора данных:

if($i == 2)
echo '</tr><tr>';

Это должно быть просто echo '</tr><tr>';

0

Используйте цикл 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>';
}
0
По вопросам рекламы [email protected]