0

次のコードは、最初の値(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。

4

1 に答える 1

1

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
于 2012-09-24T20:38:42.990 に答える