作为一个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>
6条答案
按热度按时间ifmq2ha21#
我的猜测是,你有一个问题,因为你没有关闭你的选择标记后,循环。考虑将与数据库相关的代码从标记中分离出来,这将有助于您轻松地发现此类错误
请注意,您必须为每个
value
属性指定一个唯一的值,或者完全忽略该属性。我添加了行id作为这样的值。eaf3rand2#
下面的代码很漂亮。是一个叫aaronbd in this forum的人给的
xqk2d5yq3#
我建议遵循几个调试步骤。
首先直接对数据库运行查询。确认它正在返回结果。即使是这样简单的事情,你也会发现你犯了一个错误,或者table是空的,或者一些奇怪的事情。
如果上面的方法可以,那么尝试循环并将$row的内容直接回显到HTML中,看看你在mysql_query中得到了什么-看看它是否与你直接在DB中得到的匹配。
如果您的数据输出到页面上,那么请查看HTML格式中的错误。
但是,如果
$row
没有任何输出,那么就找出mysql_query不工作的原因。用户是否有权查询该数据库,您是否有开放的数据库连接,Web服务器是否可以连接到数据库等[这些行中的某些内容通常是一个陷阱]将您的查询稍微更改为
可能有助于突出显示任何错误:php manual
aydmsdu94#
使用OOP概念代替。创建一个类的函数
然后使用类对象调用代码中的函数
Full code and description can be found here
5lhxktic5#
gxwragnw6#