所以我在页面上有多个下拉菜单。但是我需要他们从单个数据库查询中获取记录,以便所有下拉列表都具有相同的列表。我已经尝试实现这一目标,但是我得到的只是第一个下拉列表的填充。这是我在下面所做的并且需要帮助。

<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/

10-09 18:49
查看更多