HTML选择不显示所有选项

时间:2014-01-21 22:02:04

标签: php html mysql

我有一个带有动态select选项的表单,其中通过PHP从数据库中获取其选项。主要问题是虽然它正在工作,但它没有显示数据库中的第一条记录。这是代码:

<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>

4 个答案:

答案 0 :(得分:4)

删除第一个$result=mysql_fetch_array($query);

这条线基本上抛弃了第一条记录。

在while循环中,你做2件事,用mysql_fetch_array()的结果分配$ result,并检查结果是否为null。

答案 1 :(得分:1)

mysql_fetch_array()每次调用时都会将其内部数据指针向前移动1,直到没有其他选项并返回false。这就是你可以使用while循环的原因。

因此,如果您先删除$result=mysql_fetch_array($query)电话,那么您就可以了。

答案 2 :(得分: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>

或者在批量数据的情况下,获取数组然后循环遍历数组(然而,通过一次调用获取结果,使代码更有效)

答案 3 :(得分: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>