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