1

我对 php 和 html 非常陌生,我试图从数据库表记录集中创建这样的输出。其中“表记录 n”是 db 表记录集中的列

基本上该表将是一个 1x2x1x2x4 列,有 5 行

<table border=1>
    <tr> 
        <td>table record 1 </td>
    </tr>

    <tr> 
        <td> table record 2 </td> <td>table record 3 </td>
    </tr>   
    <tr> 
        <td> table record 4 </td>
    </tr>
    <tr> 
        <td> table record 5 </td> <td>table record 6 </td>
    </tr>
    <tr> 
        <td> table record 7 </td> 
        <td>table record 8 </td>
        <td> table record 9 </td> 
        <td>table record 10</td>
    </tr>

</table>

我只到了这个

          $next_Column = 1;


          echo "<tr>";

           while ( $row = mysql_fetch_array( $result ) ) 
           { 
    echo "<td>". $row['name']. "</td>"; 
    $next_Column ++;

    if( $next_Column > 1 )
    {
        echo "<tr>";
        $next_Column = 1;
    }
       } 
          ?> 
4

1 回答 1

0

上面的循环将始终回显 a <tr>,因为当您到达 时if$next_column将始终 > 1。您需要使用嵌套循环来遍历列。本页上的代码之类的东西应该会有所帮助。虽然,如果你知道你需要它的确切格式,为什么不让你的 php 像这样呢?

<table border=1>
<?php
    while ( $row = mysql_fetch_array( $result ) )
    {
        echo '<tr><td>' . $row[0] . '</td></tr>';
        echo '<tr><td>' . $row[1] . '</td><td>' . $row[2] . '</td></tr>';
        echo '<tr><td>' . $row[3] . '</td></tr>';
        echo '<tr><td>' . $row[4] . '</td><td>' . $row[5] . '</td></tr>';
        echo '<tr><td>' . $row[6] . '</td><td>' . $row[7] . '</td>';
        echo '<td>' . $row[8] . '</td><td>' . $row[9] . '</td></tr>';
    }
?>
</table>

请注意,所有这些数字都可以替换为引号中的列名(如'name')。此外,上面的代码将为数据库中的每一行发出 5 个表行。那是你想要做的吗?

编辑:如果您尝试遍历每一行并将其添加到基于 THAT ROWS 列数的表中,那么我会建议这样的事情:

<table border=1>
<?php
    while ( $row = mysql_fetch_array( $result ) )
    {
        echo '<tr>';

        //Loop through cols
        foreach($row as $value)
        {
            if($value)
            {
                echo '<td>' . $value . '</td>';
            }
        }

        echo '</tr>'
    }
?>
</table>

这只会将值放在表行中,如果它在数据库中,所以如果你有一行有 1 个填充列,你会得到 1 个表列,但是一个有 4 个填充列的行将有 4 个表列。

于 2011-12-12T16:41:53.530 回答