我尝试使用垂直标头将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>
但mySQL数据不显示在第2和第3 <tr>
。我的代码出了什么问题?有人能告诉我如何让它发挥作用吗?谢谢。
答案 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>