mysql行使用for循环到html表

时间:2015-03-18 04:51:51

标签: php mysql

我尝试使用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>";

}

3 个答案:

答案 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>