抱歉,如果我应该知道更好,但我已经在这个问题上苦苦挣扎了一段时间.
我有一个300行的mysql数据库.它包含4列,"eventid","player1","player2","得分".在游戏中,player1给予其他人(player2)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>";
}
Run Code Online (Sandbox Code Playgroud)
当我运行这一切时,我能看到的是
144
73得到了44
但我希望看到144排"玩家2"得到"玩家2的得分".
我究竟做错了什么?
另外:mysql_fetch_assoc只返回指向结果集中第一行的指针.这就是为什么你最终只打印一行.
将您的代码更改为:
while($opponent=mysql_fetch_assoc($opponent_data)) {
echo $opponent['player2']." got ".$opponent['score'];
}
Run Code Online (Sandbox Code Playgroud)