MySQL-第一行被跳过

时间:2013-03-10 12:20:14

标签: php mysql row

我有一个MySQL表,看起来像这样 -

enter image description here

当我尝试使用以下代码打印所有行时

<?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-17

Click here for the live version

如您所见,第一行(id:1,atheleteName:ankur)未被打印。我在这里做错了什么?

3 个答案:

答案 0 :(得分:2)

&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);

即可

答案 1 :(得分:2)

在您的代码中

           if($counter>0)
            {
                    print("systemResult=Success<br>");
                    $array = mysql_fetch_array($query);

                    while($data=mysql_fetch_array($query))
                    {

在<{em> mysql_fetch_array循环之前,你有while

只需删除该行,您也将获得第一条记录。

答案 2 :(得分:1)

在此文件中,您可以参考

@Akam是的 - pastebin.com/00WFdnrt for exact copy - Ankur Sharma 2分钟前

有一行没有。 9:

   $array = mysql_fetch_array($query);

   while($data=mysql_fetch_array($query))

导致丢失第一条记录。

你没有在你的问题中写这个。