如何使用MySQL表中的数据创建下拉列表框

时间:2017-08-13 15:54:06

标签: php mysql

我需要一些帮助来填充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;
}

1 个答案:

答案 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);,以调试任何与语法相关的问题。