2013-05-22 26 views
-1

我想創建一個帶選項的選擇字段,選項存儲在數據庫中。MYSQL不會選擇下一行

表看起來是這樣的:

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被註釋掉了,表明它只是選擇了第一行。 有什麼幫助嗎? :)

+3

你顯然需要重新讀一下'mysql_fetch_array'實際上在做什麼:http://php.net/mysql_fetch_array – deceze

+0

你的while循環在哪裏?閱讀示例:http://php.net/mysql_fetch_array – Jocelyn

+0

再次和agin,停止使用'mysql_ *'函數。改爲使用PDO或MySQLi。 – Raptor

回答

0

嘗試這樣

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

任何理由downvote它.. ??對我而言, – Gautam3164

+0

對我贏得的比賽遲了幾秒鐘。 – Bryan

+0

即使我得到了downvote那 – Gautam3164

3

當然它獲取只有一個記錄。 mysql_fetch_array()只獲取當前行。要獲取所有行,您需要遍歷它。

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

請注意,mysql_*函數現在已被棄用且不受PHP支持。您應該使用PDOMySQLi

+0

謝謝,我知道我的循環有什麼問題,但無法舉起我的手指。 – nlreturns