【发布时间】:2021-03-31 03:06:06
【问题描述】:
我正在使用下面的代码在我的页面中检索数据以选择标签
<?php
$approveduser = mysqli_query($conn, "SELECT * FROM users WHERE `status` ='approved' AND `id` != '" . $_SESSION['user_row_id'] . "'");
while ($approvedrow = mysqli_fetch_array($approveduser)) {
//this loops works fine
?>
<tr>
<td class="text-center">
<div class="">
<select id="cat">
<?php
$cityquery = mysqli_query($conn, "SELECT * FROM `cities`");
while ($cityquery = mysqli_fetch_array($cityquery)) {
//this loop has the problem
?>
<option value="<?php echo $cityquery['id']; ?>"><?php echo $cityquery['cityname']; ?></option>
<?php
}
?>
</select>
</div>
</td>
</tr>
<?php
}
?>
当数据库中有更多行时,我的第二个 while 循环只向 select 标记输出一行。 导致这种情况的错误可能是什么。 我该如何解决这个问题。
【问题讨论】:
-
首先获取
cities的内容并将结果存储在一个数组中。然后,您可以在内部循环中重复使用该数组,而不是一遍又一遍地从数据库中查询完全相同的数据。 -
作为@MagnusEriksson 所说的扩展,您可以在字符串中构建整个选择 HTML,然后为每一行输出它。
标签: php mysql loops while-loop