我需要一些帮助来填充mysql表中的下拉列表。我是php的新手,我很难过。这是我的代码,我知道它错了,我只是不知道在哪里。
我当前的输出只是一个下拉框,里面没有任何内容。
我的预期输出是它会从mysql表中显示驱动程序的名称。
<?php
$Hehe = $mydb->getALL('SELECT drivername FROM driver;'); //select from all users
?>
<select name=mydriver value=''>Driver Name</option> // list box select command
<?php
foreach($Hehe as $hehe){//Array or records stored in $row
?>
<option name = "mydriver"><?phpecho $Hehe['drivername']?></option>
</select>
<?php
}
?>
getALL函数:
function getAll($query) {
$result = $this->conn->prepare($query);
$ret = $result->execute();
if (!$ret) {
echo 'PDO::errorInfo():';
echo '<br />';
echo 'error SQL: '.$query;
die();
}
$result->setFetchMode(PDO::FETCH_ASSOC);
$reponse = $result->fetchAll();
return $reponse;
}
答案 0 :(得分:0)
您正在使用错误的数组来获取 drivername 。它应该是$hehe['drivername']
,而不是$Hehe['drivername']
。就像我说的,在你的代码中使用一些有意义的变量名,你很容易找到错误。另外</select>
应该在foreach
循环之外。
<?php
$Hehe = $mydb->getALL('SELECT drivername FROM driver;'); //select from all users
?>
<select name="mydriver">Driver Name</option> // list box select command
<?php
foreach($Hehe as $hehe){//Array or records stored in $row
?>
<option value="<?php echo $hehe['drivername']; ?>"><?php echo $hehe['drivername']; ?></option>
<?php
}
?>
</select>
旁注:始终打开错误报告,在PHP脚本的最顶部添加这两个语句ini_set('display_errors', 1); error_reporting(E_ALL);
,以调试任何与语法相关的问题。