无法将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】:您需要正确连接并相应地使用id
和name
。
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
jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?