1

私はそのように見えるデータベースを持っています-

画像1

時間に基づいて上位10個のエントリを取得しようとしています(time列に上位10個の値があるエントリ)。私は次のコードを持っています。

    <?php
    include_once("connect.php");
    $sql = "SELECT * FROM scores order by time desc limit 10";
    $query = mysql_query($sql) or die("systemResult=Error");
    $counter    = mysql_num_rows($query);

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

        foreach($array as $data)
        {
            $athleteName    = $data["athleteName"];
            $email = $data["email"];
            $time = $data["time"];
            $timeStamp = $data["timeStamp"];
            $country = $data["country"];

            print "&athleteName=" . $athleteName;
            print "&email=" . $email;
            print "&time=".$time;
            print "&timeStamp=".$timeStamp;
            print "&country=".$country;
         }
    }
    else
    {
        print("systemResult=Error");
    }
?>

私が得ている出力は

systemResult=Success&athleteName=7&email=7&time=7&timeStamp=7&country=7&athleteName=7&email=7&time=7&timeStamp=7&country=7&athleteName=4&email=4&time=4&timeStamp=4&country=4&athleteName=4&email=4&time=4&timeStamp=4&country=4&athleteName=G&email=G&time=G&timeStamp=G&country=G&athleteName=G&email=G&time=G&timeStamp=G&country=G&athleteName=n&email=n&time=n&timeStamp=n&country=n&athleteName=n&email=n&time=n&timeStamp=n&country=n&athleteName=2&email=2&time=2&timeStamp=2&country=2&athleteName=2&email=2&time=2&timeStamp=2&country=2&athleteName=I&email=I&time=I&timeStamp=I&country=I&athleteName=I&email=I&time=I&timeStamp=I&country=I

ご覧のとおり、私が取得している出力は、データベースのテーブルにあるものではありません。私は奇妙な値を取得しています。私は何が間違っているのですか?

4

2 に答える 2

2

ケースでそれぞれに使用する必要はありません。使用する場合は、$ dataを出力し、foreachループを削除してみてください。すべてのレコードを取得する場合は、whileを使用してください。

 while($data = mysql_fetch_array($query))
    {
        $athleteName    = $data["athleteName"];
        $email = $data["email"];
        $time = $data["time"];
        $timeStamp = $data["timeStamp"];
        $country = $data["country"];

        print "&athleteName=" . $athleteName;
        print "&email=" . $email;
        print "&time=".$time;
        print "&timeStamp=".$timeStamp;
        print "&country=".$country;
     }
于 2013-03-10T11:06:17.200 に答える
2

試す

while($data = mysql_fetch_array($query)) {
    $athleteName    = $data["athleteName"];
    //...
于 2013-03-10T11:07:21.957 に答える