-1

使用以下代码:

<table border="1" >
<?
    $item_count=0;  
    $select_SQL="select * from iplay_test";
    $result=mysql_query($select_SQL,$con);
    while($eachRow= mysql_fetch_array($result))
    {   
        if($item_count%3==0)
        {
            echo "<tr><td> 0 </td></tr>";           
        }
        else
        {
            echo "<td> 1</td>";
        }

    $item_count++;
    }

    ?>      
</table>

我得到输出,

0
1    1
0
1    1
0
1    1
0
1    1
0
1    1

但我应该得到类似的东西

0 1 1 
0 1 1
0 1 1

我在这里想念什么?

我基本上这样做是为了让每行显示 3 个项目。要显示的数据将来自数据库。这个问题有更好的解决方案吗?

4

4 回答 4

3

您将每隔三个单元格打开和关闭该行。开始 tr 标签应该在第一个单元格之前,而结束标签应该在第三个单元格之后。

于 2012-09-04T18:24:53.070 回答
1

您正在为每条记录开始一个新行:

        echo "<tr><td> 0 </td></tr>";
              ^^^^--- starts a new row

<tr></tr>移出此回声,并仅在每 3 条记录后发出它们,因此您会得到更像

<tr>
   <td>1</td><td>2</td><td>3</td>
</tr>
etc...
于 2012-09-04T18:24:46.163 回答
1

我移动了<tr>

while($eachRow= mysql_fetch_array($result))
{   
    echo '<tr>';
    if($item_count%3==0)
    {
        echo "<td>0</td>";           
    }
    else
    {
        echo "<td>1</td>";
    }
    echo '</tr>';

    $item_count++;
}
于 2012-09-04T18:29:45.813 回答
0

如下更改代码,解决了我的问题。感谢贾沙

<table border="1" >

    <tr>
    <?
    $item_count=0;

    $select_SQL="select * from iplay_test";
    $result=mysql_query($select_SQL,$con);
    while($eachRow= mysql_fetch_array($result))
    {


    if($item_count%3==0)
    {
        if($item_count==0)
        {
        echo "<td> 0</td>";
        }
        else
        {
        echo "</tr><tr><td> 0 </td>";
        }   
    }
    else
    {
        echo "<td> 1</td>";

    }

        $item_count++;
    }

?>  

</tr>   
    </table>
于 2012-09-04T18:42:10.020 回答