如何使用数据库中的值填充 HTML 下拉列表

2022-08-30 14:49:34

作为我正在创建的HTML表单的一部分,我希望有一个下拉列表,它将列出我数据库中的所有用户名。

我以为下面的代码可以做到这一点,但下拉列表是空的 - 有人可以帮助我做错了什么吗?谢谢。

<tr>
<td>Owner</td>
<td>
<select name="owner">
<?php 

$sql = mysqli_query($connection, "SELECT username FROM users");

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

?>
<option value="owner1"><?php echo $row['username']; ?></option>

<?php
// close while loop 
}
?>
</td>
</tr>

答案 1

我的猜测是你有一个问题,因为你没有在循环后关闭你的选择标签。这能解决问题吗?

<select name="owner">
<?php 
$sql = mysqli_query($connection, "SELECT username FROM users");
while ($row = $sql->fetch_assoc()){
echo "<option value=\"owner1\">" . $row['username'] . "</option>";
}
?>
</select>

答案 2

下面的代码很好。.它是由这个论坛上另一个名叫aaronbd的人给出的

<?php

$conn = new mysqli('localhost', 'username', 'password', 'database') 
or die ('Cannot connect to db');

    $result = $conn->query("select id, name from table");

    echo "<html>";
    echo "<body>";
    echo "<select name='id'>";

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

                  unset($id, $name);
                  $id = $row['id'];
                  $name = $row['name']; 
                  echo '<option value="'.$id.'">'.$name.'</option>';

}

    echo "</select>";
    echo "</body>";
    echo "</html>";
?> 

推荐