无法将mysql表中的数据打印到下拉列表中

Posted

技术标签:

【中文标题】无法将mysql表中的数据打印到下拉列表中【英文标题】:Cannot print data form mysql table into dropdown 【发布时间】:2018-03-12 06:04:10 【问题描述】:

我有包含列的类别表:id 和 name。我想将它们显示到下拉菜单中。它们存储在以下$categoriesArray

array (size=6)
  0 => 
    array (size=2)
      'id' => string '1' (length=1)
      'name' => string 'Name 1' (length=12)
  1 => 
    array (size=2)
      'id' => string '2' (length=1)
      'name' => string 'Name 2' (length=14)
  2 => 
    array (size=2)
      'id' => string '3' (length=1)
      'name' => string 'Name 3' (length=10)
  3 => 
    array (size=2)
      'id' => string '4' (length=1)
      'name' => string 'Name 4' (length=14)
  4 => 
    array (size=2)
      'id' => string '5' (length=1)
      'name' => string 'Name 5' (length=20)
  5 => 
    array (size=2)
      'id' => string '6' (length=1)
      'name' => string 'Name 6' (length=14)

我想显示带有选项值 ID 和选项名称的下拉列表。 我尝试了以下方法:

$sql = "SELECT * FROM categories";
                $result = $conn->query($sql);
                $categoriesArray = array();


                if ($result->num_rows > 0) 
                    echo "<select>";
                    // output data of each row
                    while($row = $result->fetch_assoc()) 
                        array_push($categoriesArray, $row);
                        echo "<option>$categoriesArray[0]['name']</option>";
                    
                    echo "</select>";
                

但不确定如何打印所有元素。有什么想法吗?

【问题讨论】:

【参考方案1】:

您需要正确连接并相应地使用idname

echo "<option>$categoriesArray[0]['name']</option>";

应该改成

$i=0;
while($row = $result->fetch_assoc()) 
echo "<option id='".$row[i]['id']."'>".$row[i]['name']."</option>";
i++; // traverse next array

【讨论】:

【参考方案2】:

你也可以这样试试,其实我是这样的。

 //push row data here 
 while ($row = $result->fetch_assoc()) 
        $categoriesArray[$row["id"]]= $row["name"];
 

 echo "<select>";
 echo "<option selected='selected'>Choose one</option>";

 //make your dropdown here
 foreach($categoriesArray as $id=>$name) 
    echo "<option value=$id>$name</option>";
 
 echo "</select>";

【讨论】:

以上是关于无法将mysql表中的数据打印到下拉列表中的主要内容,如果未能解决你的问题,请参考以下文章

将下拉列表中的文本值传输到其各自的数据库 ID - sql 插入和 php

在asp.net的html表中添加下拉列表

jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?

使用 web api 编辑获取数据时无法将数据绑定到 jqgrid 中的下拉列表

如何将下拉列表中的选定值添加到数据库中?

怎么把数据库中的的一个表中的一个字段的所有信息显示到下拉列表中啊