Php 对如何填充select元素感到困惑

Php 对如何填充select元素感到困惑,php,Php,我有一个从数据库中获取作者的函数 function loadAuthors(){ $db=new DbConnect; $con=$db->connect(); $stmt=$con->prepare("select * from authors"); $stmt->execute(); $authors=$stmt->fetchAll(PDO::FETCH_ASSOC); return $authors; } 我在这里

我有一个从数据库中获取作者的函数

function loadAuthors(){
    $db=new DbConnect;
    $con=$db->connect();

    $stmt=$con->prepare("select * from authors");
    $stmt->execute();
    $authors=$stmt->fetchAll(PDO::FETCH_ASSOC);
    return $authors;
}
我在这里调用这个函数

function fetch(){

    $result='';

    $authors=loadAuthors();
    while (list($k,$v)=each($authors)) {
        $result.='<option value="'.$k.'">' .$v.'</option>';
    }
    return $result;



}

您可以使用var_dump调试输出。 loadAuthors返回一个包含关联数组的数组。 此外,还需要定义要显示的列。 作者是客体

这样的Smth应该可以工作:

/* ... */
foreach ($authors as $author) {
  $result.='<option value="'.$author["column_name"].'">' .$author["column_name"].'</option>';
}
/* ... */

您可以使用var_dump调试输出。 loadAuthors返回一个包含关联数组的数组。 此外,还需要定义要显示的列。 作者是客体

这样的Smth应该可以工作:

/* ... */
foreach ($authors as $author) {
  $result.='<option value="'.$author["column_name"].'">' .$author["column_name"].'</option>';
}
/* ... */

如果您打印\r$authors,您会得到什么?如果您打印\r$authors,您会得到什么?我还建议使用foreach,因为现在每个都不受欢迎@CodeSpirit answer应该可以正常工作。从链接中可以看出:每个函数在几乎所有可以想象的方面都不如foreach,包括速度慢10倍以上。这一功能的继续存在给某些语言变化带来了问题。例如,RFC必须排除列表,因为每个的典型用法都依赖于这样一个事实,即您可以在没有警告的情况下访问false上的数组偏移量。@Code Spirit感谢您的帮助我还建议使用foreach,由于每个都已被弃用,@CodeSpirit-answer应该可以正常工作。从链接上看:每个函数在几乎所有可以想象的方面都不如foreach,包括速度慢了10倍以上。这一功能的继续存在给某些语言变化带来了问题。例如,RFC必须排除列表,因为每个的典型用法都依赖于这样一个事实,即您可以在没有警告的情况下访问false上的数组偏移量。@Code Spirit感谢您的帮助