所以我在页面上有多个下拉菜单。但是我需要他们从单个数据库查询中获取记录,以便所有下拉列表都具有相同的列表。我已经尝试实现这一目标,但是我得到的只是第一个下拉列表的填充。这是我在下面所做的并且需要帮助。
<select name="pl2a" class="input-field-login3" id="pl2a" tabindex="1">
<option selected="Selected">--Select Player--</option>
<?php do { ?>
<option value="<?php echo $row_playersa['plyName']; ?>"><?php echo $row_playersa['plyName']; ?></option>
<?php } while ($row_playersa = mysqli_fetch_assoc($result_playersa)); ?>
</select>
我只是通过更改名称来区分,所以在所有下拉菜单中都反复使用了此功能。但是只会填充第一个下拉列表。
最佳答案
mysqli_fetch_assoc
在使用时消耗结果集中的行。因此,在生成第一个下拉列表之后,您已到达结果集的末尾,对mysqli_fetch_assoc
的进一步调用将返回null
。要解决此问题,请在输出任何下拉列表之前将结果存储在数组中。该数组将可重用。
这样做一次:
<?php
while ($row_playersa = mysqli_fetch_assoc($result_playersa)) {
$players[] = $row_playersa;
}
?>
然后您可以根据需要执行多次操作:
<select name="pl2a" class="input-field-login3" id="pl2a" tabindex="1">
<option selected="Selected">--Select Player--</option>
<?php foreach ($players as $player): ?>
<option value="<?php echo $player['plyName'] ?>"><?php echo $player['plyName'] ?></option>
<?php endforeach ?>
</select>
关于php - 使用相同的查询同时使用mysql表中的数据同时填充多个下拉列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38778628/