我正在尝试动态填充PHP中的下拉列表,这会导致无限循环并且我的浏览器崩溃。我不知道如何正确地让它显示一个表中的所有行,但我认为这将是一个相对简单的修复。 while循环可能会将其抛弃。如果您需要更多信息,请告诉我我正在关注此示例,但我的是用PDO编写的:
Dynamic drop down list using html and php
<h3>Company Listing</h3>
<select name='companies'>
<option value="">--- Select ---</option>
<?php
//gets user's info based off of a username.
$query = "SELECT business_name FROM Businesses";
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
}
//fetching all the rows from the query
$profileRow = $stmt->fetch();
while ($profileRow)
{
?>
<option value="<?php echo $profileRow['business_name']?>"><?php echo $profileRow['business_name']?></option>
<?php
}
?>
</select>
<p></p>
答案 0 :(得分:4)
$profileRow
没有变化。所以它永远是真的
你需要这样做
while($profileRow = $stmt->fetch())
答案 1 :(得分:4)
更改
$profileRow = $stmt->fetch();
while ($profileRow)
{
到
while ($profileRow = $stmt->fetch())
{
这样$profilerow
会不断更改,并且当没有剩余行时,最终会在FALSE
条件内评估为等效while
的内容。在您的版本中$profilerow
成为一个对象,永远不会改变。对象在TRUE
条件下评估为while
。