2014-01-21 275 views
0

我有一個動態的select選項的表單,其中通過PHP從數據庫中選擇它的選項。主要問題是,雖然它正在工作,但它不顯示數據庫中的第一條記錄。這是代碼:HTML選擇不顯示所有選項

<select name="elevi" > 
    <? 
    $sql="Select * from elevi"; 
    $query=mysql_query($sql)or die(mysql_error()); 
    $result=mysql_fetch_array($query); 
    while($result=mysql_fetch_array($query)){ 
     echo'<option value="'.$result['id_elev'].'">'.$result['nume']."".$result['prenume'].'</option>'; 
    } 
    ?> 
</select> 
+0

也,而這很可能只是一個示例代碼 - 試圖讓使用它只有一次未分配的東西一個變量,然後的習慣。不是一件大事,但仍然。 – hummingBird

回答

4

刪除第一個$result=mysql_fetch_array($query);

這條線基本上扔掉的第一條記錄。

在while循環中,你做了2件​​事情,用mysql_fetch_array()的結果賦值$ result,並檢查結果是否爲null。

+0

你在哪裏......沒有想到這一點,非常感謝! – Danny3man

+0

沒問題,不要忘記標記爲已回答。 –

1

mysql_fetch_array()每次調用它的內部數據指針向前移動一次,直到沒有更多選項並返回false。這就是爲什麼你可以使用while循環。

所以,如果你先撥打$result=mysql_fetch_array($query)電話,你會沒事的。

1

您需要一次

<select name="elevi" > 
    <?php 
     $sql="Select * from elevi"; 
     $query=mysql_query($sql)or die(mysql_error()); 
    while($result=mysql_fetch_row($query)){ 
    echo'<option value="'.$result['id_elev'].'">'.$result['nume']." ".$result['prenume'].'</option>';}?> 
    </select> 

或散裝數據的情況下抓取一排,通過陣列獲取數組,然後循環(結果然而取出與一個呼叫使代碼更高效)

0

您正在使用$ result = mysql_fetch_array($ query);兩次, 應該使用一次,例如,

<select name="elevi" > 
<?php 
    $sql="Select * from elevi"; 
    $query=mysql_query($sql)or die(mysql_error()); 
while($result=mysql_fetch_row($query)){ 
echo'<option value="'.$result['id_elev'].'">'.$result['nume']." ".$result['prenume'].'</option>';}?> 
</select>