php数组不会显示在表格中

时间:2014-01-27 01:34:24

标签: php mysql

我有一个数组,我试图以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);
?> 

2 个答案:

答案 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循环之外。

因为结束表不应该在循环中。 (重复) 同样重要的是,你过早地终止了这一行。