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

あなたのコードで

           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 に答える
2
&athleteName=Guest-91
&athleteName=ankur

行がリストされている場合、クエリで ORDER BY ID ASC を使用する必要があります

$sql = "SELECT * FROM scores ORDER BY ID ASC";

更新: 投稿されたコードによると、mysql_fetch_array が 2 回呼び出されました:

        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 に答える
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 に答える