2014-01-21 181 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>