答案 0 :(得分:0)
我认为问题在于您重复使用$row
变量名称。在代码块的这一部分:
<?php
$conn = new PDO('mysql:host=localhost;dbname=money', 'muser', 'mpass');
$stmt = $conn->query('SELECT * from state where type = "state" or type = "capitol"');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "<option value= " . $row['abbreviation'] . ">" . $row['name'] . "</option>";
}
?>
</select>
<label for="country">Country</label>
<select id="country" name="country">
<option value="<?php echo $row['country']; ?>"><?php echo $row['country']; ?></option>
//no data shows in this option field.
您为$row
循环使用while()
变量名称,这意味着$row
循环中for()
的原始值将被覆盖并结束到达第二个选择字段时为null
。更改while
循环以使用其他变量名称(例如$whileRow
)会阻止原始$row
变量被覆盖。
附注:您再次使用$row
进行第二次while()
循环,这将再次导致问题。你需要注意你使用的变量名,特别是在嵌套循环中,因为它最终会产生一些很难跟踪的奇怪错误(正如你所见)。