PHP下拉列表导致无限循环

时间:2014-03-16 22:54:27

标签: php html mysql pdo while-loop

我正在尝试动态填充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>

2 个答案:

答案 0 :(得分:4)

$profileRow没有变化。所以它永远是真的

你需要这样做

while($profileRow = $stmt->fetch())

答案 1 :(得分:4)

更改

$profileRow = $stmt->fetch();
while ($profileRow) 
{ 

while ($profileRow = $stmt->fetch()) 
{ 

这样$profilerow会不断更改,并且当没有剩余行时,最终会在FALSE条件内评估为等效while的内容。在您的版本中$profilerow成为一个对象,永远不会改变。对象在TRUE条件下评估为while