我正在尝试使用PHP foreach循环以html显示数据。返回查询结果后,通过调用PDOStatement::fetchAll
获得数据数组(下面的代码中的$studentHistory
)。
但是,当我使用echo在foreach循环中写出html时,
内循环中的值跳过一个迭代。
echo '<table>
<tr>
<th>Type</th>
<th>STUDENT ID</th>
<th>ROOM ID</th>
<th>DATE</th>
<th>Description</th>
</tr>
';
foreach ($studentHistory as $item=>$row)
{
echo "<tr>";
foreach($row as $value)
{
echo "<td style='width: 150px; border: 1px solid black;>".$value."</td>";
}
echo "</tr>";
}
echo '</table>';
如果我替换内部循环以在不使用HTML的情况下进行回显,则会显示所有数据:
...
foreach($row as $value)
{
echo $value." ";
}
...
我正在使用PDO并运行MySQL 5。
我该如何解决?
答案 0 :(得分:0)
您缺少td样式属性值的右引号。
正如@Always Sunny在其评论中特别指出的那样,内循环的正确代码行如下:
echo "<td style='width: 150px;border: 1px solid black;'>".$value."</td>";
通常,如果通过PHP的回显打印无效的HTML,输出将不会正确显示。