我有一个MySQL表,它看起来是这样的-

当我尝试使用以下代码打印所有行时
<?php
include_once("connect.php");
$sql = "SELECT * FROM scores";
$query = mysql_query($sql) or die("systemResult=Error");
$counter = mysql_num_rows($query);
if($counter>0)
{
print("systemResult=Success<br>");
while($data=mysql_fetch_array($query))
{
$athleteName = $data["athleteName"];
print "&athleteName=" . $athleteName;
print "<br>";
}
}
else
{
print("systemResult=Error");
}
?>代码的精确副本- http://pastebin.com/00WFdnrt
我得到了以下输出
systemResult=Success
&athleteName=Guest-73
&athleteName=Guest-71
&athleteName=Guest-24
&athleteName=Guest-67
&athleteName=Guest-37
&athleteName=Guest-23
&athleteName=Guest-91
&athleteName=ankur
&athleteName=Guest-41
&athleteName=Guest-38
&athleteName=Guest-72
&athleteName=Guest-25
&athleteName=Guest-36
&athleteName=Guest-17Click here for the live version
如您所见,第一行(id:1,atheleteName:ankur)没有被打印出来。我在这里做错了什么?
发布于 2013-03-10 20:35:42
在代码中
if($counter>0)
{
print("systemResult=Success<br>");
$array = mysql_fetch_array($query);
while($data=mysql_fetch_array($query))
{在while循环之前有mysql_fetch_array。
只需删除该行,您也将获得第一条记录。
发布于 2013-03-10 20:23:30
&athleteName=Guest-91
&athleteName=ankur该行已列出,您需要在查询中使用ORDER BY ID ASC
$sql = "SELECT * FROM scores ORDER BY ID ASC";更新:根据发布的代码,mysql_fetch_array调用了两次:
if($counter>0)
{
print("systemResult=Success<br>");
$array = mysql_fetch_array($query);
while($data=mysql_fetch_array($query))
{**只删除第一个( $array = mysql_fetch_array($query);)即可
发布于 2013-03-10 20:38:06
在此文件中,您引用了
@Akam是的- pastebin.com/00WFdnrt用于精确复制- Ankur Sharma 2分钟前
有一行代码是9:
$array = mysql_fetch_array($query);
while($data=mysql_fetch_array($query))这会导致第一条记录丢失。
你没有在你的问题中写下这个。
https://stackoverflow.com/questions/15322151
复制相似问题