如何从MySQL填充下拉列表文本和值?

时间:2011-09-12 17:46:17

标签: php mysqli

我使用mysqli查询数据库表以获取下拉列表的值。但是,我还想检索相应的描述并将其加载到选项文本中。我的查询如下:

<?php 
$query=('SELECT restaurantid,location from restaurant');
$result = mysqli_query($mysqli,$query);
echo '<select name="ddlStore">';
while($row=$mysqli->fetch_array($result))
{
    echo '<option value="' . htmlspecialchars($row['restaurantid']) . '">';
    '</option>';
}
echo '</select>';
?>

如何修改上述内容,以便在下拉列表的选项文本中填充位置字段?

更新的代码:

<?php 
$query=('SELECT restaurantid,location from restaurant');
$result = mysqli_query($mysqli,$query);
echo '<select name="ddlStore">';
while($row=$mysqli->fetch_array($result))
{
    echo '<option value="' . htmlspecialchars($row['restaurantid']) . '">' .
     htmlspecialchars($row['location']) . 
    '</option>';
}
echo '</select>';
?>

上述内容仍然不会将位置显示为下拉列表选项文本值。

更新#2: 查看页面时,下拉列表不显示数据库表中的值。使用IE Developer Tools,我在while语句中看到了一个脚本错误:

Call to undefined method mysqli::fetch_array()

是否有更好的方法来构造mysqli_fetch_array语句?

3 个答案:

答案 0 :(得分:0)

echo '<option value="' . htmlspecialchars($row['restaurantid']) . '">' . htmlspecialchars($row['location']) . '</option>';

但到目前为止你尝试了什么?

答案 1 :(得分:0)

更改为...

echo '<option value="' . htmlspecialchars($row['restaurantid']) . '">' . htmlspecialchars($row['location']) . '</option>';

答案 2 :(得分:-1)

尝试这种方式(more info here

$result = $mysqli->query($query)

while($row = $result->fetch_assoc()) {

}