抱歉,如果我应该更了解,可是我已经为此苦苦挣扎了很长时间。
我有一个300行的mysql数据库。它包含4列,“事件ID”,“玩家1”,“玩家2”,“得分”。在游戏中,玩家1给其他所有人(玩家2)满分100。
我想做的是向登录的用户(player1)显示他们已得分的“ player2”的表格。
我的代码如下所示:

$currentuserid = 00001;

$opponent_data = mysql_query("SELECT * FROM `scores` WHERE `player1` = $currentuserid ORDER by score");

$opponent_count = mysql_num_rows($opponent_data);

    echo $opponent_count.'<br>'; // Just to test -> and it shows I have 144 entries in the array, i.e. 144 player 2's that player 1 has scored

$opponent_scores = mysql_fetch_assoc($opponent_data);

$runrows = $opponent_scores;

foreach ($opponent_scores as &$runrows);

    {
    $id = $runrows['eventid'];
    $player2 = $runrows['player2'];
    $score = $runrows['score'];


    echo $player2." got ".$score;

    echo "<br>";

    }

当我运行这些时,我所看到的就是

144
73得44

但我希望看到144行“玩家2”获得“玩家2的得分”。
我究竟做错了什么?

最佳答案

另外:mysql_fetch_assoc将只返回指向结果集中第一行的指针。这就是为什么最终只打印一行。

将您的代码更改为:

while($opponent=mysql_fetch_assoc($opponent_data)) {
     echo $opponent['player2']." got ".$opponent['score'];
}

10-05 22:34