我尝试使用php将Mysql获取的行打印到html表中。但是,使用以下代码时,第一个获取的行将重复打印。看起来$ row保存了第一个获取的值。我发现了类似的问题here。但我想知道如何使用for循环。感谢
for ($j=0;$j<=$len2;$j++)
{
$sql = "SELECT * FROM database_search WHERE gene_id LIKE'%$key%'";
$qry = $dbo->prepare($sql);
$qry->execute();
$row = $qry->fetch(PDO::FETCH_ASSOC);
$val = array_values($row);
echo "<tr>";
for ($k=0;$k<=4;$k++)
{
$x=$val[$k];
echo "<td style=font-size:7.9px>$x</td>";
}
echo "</tr>";
}
答案 0 :(得分:0)
在将查询作为$ row变量提取后,您需要使用以下代码
foreach($row as $tr) {
echo "<tr>";
echo "<td style=font-size:7.9px>".$tr['col1']."</td>";
echo "<td style=font-size:7.9px>".$tr['col2']."</td>";
echo "</tr>";
}
答案 1 :(得分:0)
这可能是$ row只有一条记录从数据库中获取而且你的for($ k = 0; $ k&lt; = 4; $ k ++)循环打印只有一条记录5次 因为你在这个循环下使用print,这个循环将运行5次。
请尝试以下代码。
foreach($row as $val) {
echo "<tr>";
echo "<td style=font-size:7.9px>".$val['column Name']."</td>";
echo "</tr>";
}
答案 2 :(得分:0)
<table>
<?php
while($row = $qry->fetch(PDO::FETCH_ASSOC)){
echo '<tr>';
foreach($row as $cell){ echo '<td>'.$cell.'</td>'; }
echo '</tr>';
}
?>
</table>