【发布时间】:2018-07-07 15:50:21
【问题描述】:
我正在尝试使用 for 和 foreach 循环生成一个表单。想法很简单,但由于某种原因,我遇到了奇怪的问题。 For 循环应该有 5 次迭代,这工作正常,但在这个 for 循环中我嵌入了一个 foreach 循环。 Foreach 循环似乎只在 for 循环的第一次迭代中完成。我认为代码还可以,但可能多个连接模糊了我寻找错误所在的愿景。这就是代码现在的样子:
<?php
include("pdo.php");
$stmt = $pdo->query('SELECT name FROM Ingredients');
?>
<html>
<head>
<title></title>
</head>
<body>
<form>
<?php
for ($i = 1; $i <= 5; $i++) {
echo "<label>Ingredient $i</label><select name='ingredient $i'>";
foreach ($stmt as $row) {
echo ('<option value="' . $row['name'] . '">' . $row['name'] . '</option>' . "\n");
}
echo "</select><br>";
}
?>
</form>
</body>
</html>
换句话说,只有第一个列表被填充,但接下来的四个列表是空的。
【问题讨论】:
-
$stmt 在其第一个循环结束时用完。 stackoverflow.com/a/36428542/2960971