1

出于某种原因,我在从数据库中检索数据时遇到问题。它忽略了列出的第一个项目。

$sql=mysql_query("SELECT * FROM students WHERE (year = '" . mysql_real_escape_string($_SESSION['year']) . "') and ( branch= '" . mysql_real_escape_string(($_SESSION['branch'])). "') ");


$data=mysql_fetch_array( $sql );

print "<table>"
while($data = mysql_fetch_array( $sql )) 
 { 

 Print "<tr><td>".$data['idno']." </td><td>".$data['name'] . " </td></tr>";
 } 
print "</table>"

请帮我解决一下这个。谢谢你。

4

2 回答 2

3

删除以下行:

$data=mysql_fetch_array( $sql ); 

调用mysql_fetch_array将内部指针移动到下一行,因此您将获得除while循环中第一行之外的所有行。

您还可以使用 重置内部指针mysql_data_seek

mysql_data_seek ($sql, 0); // 0 for first row
于 2012-08-11T09:28:45.067 回答
0

这是因为您在一段时间之前使用了 mysql_fetch_array 一次。第一次调用将得到第一个结果,然后您将进入 while 循环。该$data变量将擦除由第二个结果分配的第一个结果,然后是第三个,第四个,依此类推。由于在 while 循环之前进行了此调用,您将始终避免第一个结果

于 2012-08-11T09:30:18.820 回答