我有一个数组,我试图以4行5显示,但它不能正确显示。使用代码,我将其显示为
<table>
<tr>
<td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>...
</tr>
</table>
而不是
<table>
<tr>
<td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td>
</tr>
</table>
我正在使用的测试代码如下。有什么建议吗?
<?php
$field = 0;
echo "<table><tbody>";
mysql_connect("localhost", "xxxx", "xxxx") or
die("Could not connect: " . mysql_error());
mysql_select_db("xxx");
$result = mysql_query("SELECT item_id FROM user_item");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
{
if ($field % 5 == 0) echo '<tr>';
echo '<td><img src="img/items/'. intval($row["item_id"]). '.png"></td>';
if ($field % 5 == 4) echo '</tr>';
$field++;
}
if ($field % 5 != 0) echo '</tr>';
echo "</tbody></table>";
}
// <img src="img/items/'. intval($sprite). '.png">
mysql_free_result($result);
?>
答案 0 :(得分:1)
试
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
if ($field % 5 == 0)
echo '<tr>';
echo '<td><img src="img/items/'. intval($row["item_id"]). '.png"></td>';
if ($field % 5 == 4)
{
echo '</tr>';
$field = 0;
}
else
$field++;
}
答案 1 :(得分:0)
if ($field % 5 != 0) echo '</tr>';
echo "</tbody></table>";
应该在while循环之外。
因为结束表不应该在循环中。 (重复) 同样重要的是,你过早地终止了这一行。