所以我在页面上有多个下拉菜单。但我需要他们从单个数据库查询中获取记录,以便所有下拉列表都具有相同的列表。我试图实现这一目标,但我得到的只是第一次下载填充。这就是我在下面所做的并需要帮助。
<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>
我只是通过更改名称来区分所有下拉菜单。但只有第一次下拉才会填充。
答案 0 :(得分:1)
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>