出于某种原因,我在从数据库中检索数据时遇到问题。它不会列出第一个项目。
$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>"
请帮我解决这个问题。谢谢。
答案 0 :(得分:3)
删除以下行:
$data=mysql_fetch_array( $sql );
对mysql_fetch_array
的调用将内部指针移动到下一行,因此除了while
循环中的第一行外,您将获得所有行。
您还可以使用mysql_data_seek
重置内部指针。
mysql_data_seek ($sql, 0); // 0 for first row
答案 1 :(得分:0)
这是因为您在使用前一次使用mysql_fetch_array。第一个调用将获得第一个结果,然后您将进入while循环。 $data
变量将删除第二个结果分配的第一个结果,然后是第三个结果,第四个结果,依此类推。
由于while循环之前的这个调用,你总是会避免第一个结果