以下代码仅适用于第一个值 (puzzle_level==4),它应该做的是打印出 puzzle_level==4, 5, 6 & 7 :(
$result = mysql_query("
SELECT puzzle_level, max(final_score) as highest_final_score
FROM sleuth_game
WHERE playerID='$_SESSION[customerID]' and final_score > 1
GROUP BY puzzle_level
ORDER BY puzzle_level"); //Load in a the highest scores
while($row = mysql_fetch_array($result)) {
echo "<p>".$row['highest_final_score']."</p>";
}
编辑: 在数据库中,所有游戏都是 puzzle_level 4、5、6 或 7。我希望的输出是玩家在每个 puzzle_level 中获得的最高分数,但我编写的代码仅显示 puzzle_level==4 的最高分数.
最佳答案
您到底希望在 SQL 查询的 WHERE 语句中使用“final_score>1”实现什么目的?
SELECT puzzle_level, max(final_score) as highest_final_score
FROM sleuth_game
WHERE playerID='$_SESSION[customerID]' and final_score > 1
GROUP BY puzzle_level
ORDER BY puzzle_level
也许 HAVING 子句是您想要实现的目标的解决方案:
SELECT puzzle_level,MAX(final_score) AS highest_final_score
FROM sleuth_game
WHERE playerID='$_SESSION[customerID]'
GROUP BY puzzle_level
HAVING MAX(final_score)>1
ORDER BY puzzle_level
关于php - 这段 PHP/Mysql 代码哪里出了问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12572245/