<?php
$user = "admin";
$password = "";
$db = "test";
$host = "localhost";
$cxn = mysqli_connect($host, $user, $password, $db);
$query = "SELECT ARTIST FROM music";
$results = mysqli_query($cxn, $query) or die("Connection could not be established");
echo "<select name='mediaType'>";
while ($row = mysqli_fetch_assoc($results))
{
extract($row);
echo "<option value=''>$row</option>\n";
}
echo "</select>";
?>
在执行此功能后,选项标签中的输出为&#34; Array&#34;对于select元素中的所有选项。我尝试将来自php变量$ row的数据存储到一个数组中,然后循环抛出该数组并回显出数组中的每个索引,但结果是相同的。愿有人在这个问题上给我一些指导。谢谢所有帮助的人。
答案 0 :(得分:1)
根据其他用户,extract()
不是您想要的。 $row
是一个数组,其中键是您的列名。使用这样的东西:
while ($row = mysqli_fetch_assoc($result)) {
echo '<option value="">'.$row['ARTIST'].'</option>';
}
注意我如何更改引号;数组运算符不在双引号字符串中工作。
将来,要检查变量的内容,请查看使用var_dump()
,它非常适合查看幕后发生的事情。
编辑:哦,如果你的表有一个数字主键ID,你可能应该使用它作为你的选择的值,以防止更改名称或人为输入错别字。
答案 1 :(得分:0)
为什么不这样做:
echo "<select name='mediaType'>";
while ($row = mysqli_fetch_assoc($results))
{
echo "<option value='".$row['ARTIST']."'>".$row['ARTIST']."</option>";
}
echo "</select>";