1

我有一个看起来像这样的 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-17

点击这里查看实时版本

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

4

3 回答 3

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

于 2013-03-10T12:23:30.393 回答
2

在您的代码中

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

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

你有循环之前mysql_fetch_array while

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

于 2013-03-10T12:35:41.717 回答
1

在此文件中,您参考

@Akam 是的,差不多 - pastebin.com/00WFdnrt 用于精确复制 - Ankur Sharma 2 分钟前

有一个行号。9:

   $array = mysql_fetch_array($query);

   while($data=mysql_fetch_array($query))

这导致丢失第一条记录。

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

于 2013-03-10T12:38:06.487 回答