【问题标题】:Repeating a <select> menu multiple times with a SQL query使用 SQL 查询多次重复 <select> 菜单
【发布时间】:2013-12-15 03:42:19
【问题描述】:

我正在尝试创建一个在页面上重复 20 次菜单的页面。我的菜单中的选项将来自 SQL 查询。

这适用于第一个菜单,但我在其他菜单上得到了空选项。

所以我的 PHP 部分有这个:

// 查询并显示 Riders 菜单的记录

$q4 = "SELECT id, fname, lname
    FROM riders
    ORDER BY lname, fname ASC"; 
    $r4 = mysqli_query ($dbc, $q4);

在我的回声中我有这个:

<!-- Input results -->';
    for($j = 0; $j < 20; $j++) {
        echo '<tr>
        <td><select id="rider" name="rider[]">';
        while ($row = mysqli_fetch_array($r4, MYSQLI_ASSOC)) {
        echo '<option value="' . $row['id'] . '">' . $row['lname'] . ', ' . $row['fname'] . '</option>';
        } // End of WHILE loop

        echo '</select></td>
        </tr>';
    }   
    echo '<tr><td colspan=2 align="center"><input type="submit" name="submit" value="Add Results" /></td></tr>

为什么我的 WHILE 循环不能在 FOR 循环的每次迭代中正常工作?

【问题讨论】:

  • 您想要 20 个具有相同选项集的菜单副本?
  • 是的。菜单中还有其他选项(我稍微缩写了我的代码),但我想选择其中一个名称与每个选项一起使用。

标签: php html mysql for-loop while-loop


【解决方案1】:
    $options = '';    
    while ($row = mysqli_fetch_array($r4, MYSQLI_ASSOC)) {
          $options .='<option value="' . $row['id'] . '">' . $row['lname'] . ', ' . $row['fname'] . '</option>';
    } // End of WHILE loop 

    for($j = 0; $j < 20; $j++) {
          echo '<tr><td><select id="rider" name="rider[]">';
          echo $options;        
          echo '</select></td></tr>';
   }   

试试这个..

【讨论】:

  • 是的,这行得通。谢谢。看起来您将我的 while 循环移到了 FOR 循环之外。为什么这行得通,但在 FOR 中使用 WHILE 却行不通?
  • 可能是因为 fetch 数组已经达到了它的限制,导致它停止循环。使用这种方法比您尝试做的要快得多..
【解决方案2】:

试试这个。

 <?php 
$sql=mysql_query("SELECT id, fname, lname FROM riders ORDER BY lname, fname ASC");
echo '<select name="country" class="country">
<option selected="selected">--Select Name--</option>';
while($row=mysql_fetch_array($sql))
{
 echo '<option value="'.$row['fname'].'">'.$row['fname'].'</option>';
}
echo '</select>';
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-10
    • 2021-07-17
    • 2015-01-10
    • 2011-01-28
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多