-1

我正在尝试创建一个带有选项的选择字段,这些选项存储在数据库中。

该表如下所示:

id  option   class
1   opt1     cl1
2   opt2     cl2
3   opt3     cl3
4   opt4     cl4

我的代码如下所示:

mysql_connect(DB_SERVER, DB_USER, DB_PASS);

    //select DB
    mysql_select_db(DB_NAME);

    //query
    $query = "  SELECT * 
                FROM `".TBL_OPTIONS."` ";

    //result query
    $result = mysql_query($query);

    // fetch query results
    $records = mysql_fetch_array($result, MYSQL_ASSOC);

    //var_dump($records);

    echo "<select>";
    foreach($records["id"] as $id){
        echo "<option id=$id>";
        echo $records["naam"];
        echo "</option>";
    }
    echo "</select>";

它只返回第一行。然后它停止。我被注释掉的 var_dump 表明它也只选择了第一行。有什么帮助吗?:)

4

2 回答 2

3

当然,它只获取一条记录。mysql_fetch_array()只获取当前行。要获取所有行,您需要遍历它。

while($records = mysql_fetch_array($result, MYSQL_ASSOC)) {
    //Do something
}

请注意,mysql_*函数现已弃用,PHP 不支持。您应该使用PDOorMySQLi代替。

于 2013-05-22T08:49:37.877 回答
0

像这样试试

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "<option id=$row['id']>";
    echo $row["naam"];
    echo "</option>";
}
于 2013-05-22T08:48:48.117 回答