繁体   English   中英

HTML选择不显示所有选项

[英]HTML Select Not Showing All Options

我有一个带有动态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>

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

该行基本上会丢弃第一条记录。

在while循环中,您要做2件事,为$ result分配mysql_fetch_array()的结果,然后检查该结果是否为null。

每次调用mysql_fetch_array()时,其内部数据指针都会向前移动一个,直到没有更多选项,并且返回false为止。 这就是为什么可以使用while循环的原因。

因此,如果您先删除了$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>

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

您正在使用$ 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM