如何使用垂直标题将mysql数据提取到html表中?

时间:2017-04-02 09:22:53

标签: php html mysql

我尝试使用垂直标头将mySQL数据提取到html表中。我的html表代码在以下代码中:

<table border="1" align="center">
<thead>
    <tr>
        <th>No.</th>
        <?php  
            while ($row1 = mysqli_fetch_assoc($q)) {
                echo "<td>$no</td>";
                $no++;
            }
        ?>
    </tr>
    <tr>
        <th>Term</th>
        <?php  
            while ($row2 = mysqli_fetch_assoc($q)) {
                echo "<td>".$row2['term']."</td>";
            }
        ?>
    </tr>
    <tr>
        <th>Normalisasi TF.IDF</th>
        <?php  
            while ($row3 = mysqli_fetch_assoc($q)) {
                echo "<td>".$row3['tf_idf_normalisasi']."</td>";
            }
        ?>
    </tr>
</thead>

这是我桌子的截图: enter image description here

但mySQL数据不显示在第2和第3 <tr>。我的代码出了什么问题?有人能告诉我如何让它发挥作用吗?谢谢。

1 个答案:

答案 0 :(得分:2)

使用单个循环生成td个元素HTML,否则mysqli_fetch_assoc方法会在第二个和第三个循环中返回NULL,因为您已经获取了所有行。

<?php  
    $td1 = '';
    $td2 = '';
    $td3 = '';
    while ($row = mysqli_fetch_assoc($q)) {
        $td1 .= "<td>$no</td>";
        $td2 .= "<td>" . $row['term'] . "</td>";
        $td3 .= "<td>" . $row['tf_idf_normalisasi'] . "</td>";
        $no++;
    }
?>

<table border="1" align="center">
<thead>
    <tr>
        <th>No.</th>
        <?php echo $td1; ?>
    </tr>
    <tr>
        <th>Term</th>
        <?php echo $td2; ?>
    </tr>
    <tr>
        <th>Normalisasi TF.IDF</th>
        <?php echo $td3; ?>
    </tr>
</thead>