PHP MYSQL 关联数组和表



这是一个代码。这会从数据库动态加载所有标头部分(即表的标头)。

下面的代码工作正常。但是该列不匹配。即标题的第一行第一列为空白,并且表中存在错位。

法典

    <table border="1">
    <?php
    $book_query = mysql_query("select * from book_master");
    $i = 0;
    while($row = mysql_fetch_assoc($book_query))
    {
            $columns = array_keys($row);
            ?> 
            <th>
                <?php
                foreach($columns as $column)
                {
                ?>
                    <td><?php echo $column; ?> </td>
            </th>
            <?php 
        } 
        ?>
        <tr>
            <?php
            foreach($row as $key=>$value)
            {
                ?>
                <td><?php echo $value; ?></td>
                <?php
            }
            ?>
        </tr>
        <?php
        $i++;
    }
    ?>          
    </table>

编辑:

这是我print_r($columns)值:

Array ( [0] => Author Name [1] => Book Name [2] => Rating [3] => Location )

我知道问题出在循环上。有人可以帮助我吗?

您可以尝试更改

         <th>
            <?php
            foreach($columns as $column)
            { ?>
                <td><?php echo $column; ?> </td>
            <?php 
            }   
            ?>
        </th>

        <tr>
            <?php
            foreach($columns as $column)
            { ?>
                <th><?php echo $column; ?> </th>
            <?php 
            }   
            ?>
        </tr>

只需删除 TH 标签,因为它会创建一个额外的单元格,所以你的布局搞砸了

<table border="1">
    <?php
    $book_query = mysql_query("select * from book_master");
    $i = 0;
    while($row = mysql_fetch_assoc($book_query))
    {
    if($i == 0){
    $columns = array_keys($row);
    ?> 
    <?php
    foreach($columns as $column){ ?>
    <td><?php echo $column; ?> </td>
    <?php } ?>
    <?php } ?>
    <tr>
    <?php
    foreach($row as $key=>$value){ ?>
    <td><?php echo $value; ?></td>
    <?php } ?>
    </tr>
    <?php
    $i++;
    }
    ?>          
    </table>

希望这会对某人有所帮助。只是我用 TR 替换了 TH 标签,输出是完美的。

    <table border="1">
    <?php
    $book_query = mysql_query("select * from book_master");
    while($row = mysql_fetch_assoc($book_query))
    {
    $columns = array_keys($row);
    ?> 
    <tr>
    <?php
    foreach($columns as $column){ ?>
    <td><?php echo $column; ?> </td>
    <?php } ?>
    </tr>
    <tr>
    <?php
    foreach($row as $key=>$value){ ?>
    <td><?php echo $value; ?></td>
    <?php } ?>
    </tr>

    </table>

最新更新