Ber*_*ard 24 php sql while-loop
作为我正在创建的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>
Run Code Online (Sandbox Code Playgroud)
Chr*_*son 31
我的猜测是你遇到问题,因为你没有在循环后关闭你的select-tag.这可以吗?
<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>
Run Code Online (Sandbox Code Playgroud)
Imo*_*mon 14
下面的代码很好..它是由在这个论坛中名为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>";
?>
Run Code Online (Sandbox Code Playgroud)
我建议遵循几个调试步骤.
首先直接针对DB运行查询.确认它会带来结果.即使有这么简单的东西,你也会发现你犯了一个错误,或者桌子是空的,或者有些奇怪.
如果上面没问题,那么尝试循环并直接将$ row的内容回显到HTML中,看看你在mysql_query中找到了什么 - 看看它是否与你在DB中直接得到的相匹配.
如果您的数据输出到页面上,那么请查看HTML格式中出现的问题.
但是,如果没有输出$row
,那么找出mysql_query无法正常工作的原因,例如用户是否有权查询该数据库,是否有开放的数据库连接,网络服务器是否可以连接到数据库等[这些行上的内容]往往是一个陷阱]
稍微更改您的查询
$sql = mysql_query("SELECT username FROM users") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
可能有助于突出显示任何错误:php手册
归档时间: |
|
查看次数: |
175336 次 |
最近记录: |