MYSQL不选择下一行

时间:2013-05-22 08:46:12

标签: php mysql fetch

我正在尝试使用选项创建一个选择字段,选项存储在数据库中。

表格如下:

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表明它也只选择了第一行。 有帮助吗? :)

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

试试这个

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "<option id=$row['id']>";
    echo $row["naam"];
    echo "</option>";
}