2014-06-13 133 views
0

我有這樣的代碼如何從數據庫訪問數據並創建選項值?

$result = mysql_query("SELECT name from room"); 
$data = mysql_fetch_array($result); 
$firstValue=""; 
while($data = mysql_fetch_array($result)){ 
    if($firstValue==""){ 
     $firstValue=$data['name']; 
    } 
    if(isset($_POST["occupant"])and trim($_POST["choice"])==$data['name']){ 
     echo '<option selected="selected" value="'.$data['name'].'" >'.$data['name']; 
     echo '</option>'; 
    }else 
     { 
     echo '<option value="'.$data['name'].'" >'.$data['name']; 
     echo '</option>'; 
     } 
    } 

什麼,我想在這裏是展示從我的數據庫中的所有數據,但是當我在瀏覽器中打開它僅顯示到最後數據的第二數據。我想知道爲什麼第一個數據丟失了。 有人可以在這裏知道我的錯誤嗎?

+0

此外,請注意,您應該切換到mysqli_或PDO擴展名,因爲從PHP 5.5.0開始,將不推薦使用mysql_擴展名。這是一個容易的變化,在你開始時而不是以後會很好。 :-) – brechmos

+0

我並不真正關注'第二數據'是什麼。你的意思是你想要完全跳過第一個記錄?只需在SQL中過濾出來即可。使用LIMIT子句:LIMIT 999,1。或者使用WHERE id> 1。 –

+0

如何切換到mysqli? @Richard Testani,我不想跳過第一個,我想要的是顯示所有數據.. – melly

回答

2

擺脫第一:

$data = mysql_fetch_array($result); 

它彈出的第一條記錄了你的結果集。

$result = mysql_query("SELECT name from room"); 
$firstValue=""; 
while($data = mysql_fetch_array($result)){ 
+0

我做了很多次,但仍然失去了第一個數據..如何出發? – melly

+0

這是*不*你的代碼顯示。 –

+0

你能告訴我我的代碼有什麼問題嗎? – melly