【问题标题】:Simultaneusly populate multiple drop down lists with data from a mysql table using the same query使用同一查询同时使用 mysql 表中的数据填充多个下拉列表
【发布时间】:2016-08-05 07:14:48
【问题描述】:

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

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

我只是通过更改名称来区分所有下拉菜单。但只有第一个下拉列表会被填充。

【问题讨论】:

    标签: php html mysql


    【解决方案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>
    

    【讨论】:

    • 感谢您的帮助。现在可以了。但是出于好奇,我尝试将值存储在一个变量中并反复调用它,它仍然不起作用。知道为什么吗?因为它与您使用的方法类似。
    • 不客气。我可能有一个想法,但我不确定您所说的“将值存储在变量中”是什么意思。
    • 我的意思是这样 $selectitem = "";
    • 我明白了。当你这样做时,你只是得到最后一个项目吗?
    • 它只是空白
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2015-01-21
    相关资源
    最近更新 更多