Det virkede ikke med UNION (hvad kvadratrodenaf1 vel allerede vidste.)
Men jeg har lavet en php scrift med en function getGames($game, $antal). Hvis man siger: echo getGames("'golf'", 3); echo getGames("'go'", 3); echo getGames("'ludo'",3) saa viser den i browseren for hver af de tre typer games de tre hoejeste scorer. Det er ikke idealt, men kvadratrodenaf1's scrift der virker i mysql virker som du har konstateret ikke i php.
Hvis du kikker paa
http://christianjorgensen.be/game_scores.php kan du see foerst de hoejeste scores i alle typer game (ogsaa naar man foejer nye typer games til), dernaest de tre hoejeste scores i golf, go, og ludo, og derefter fejlmeldingen fra kvadratrodenaf1's script. Min kode er nedenfor.
Jeg har udtoemt min viden nu (og har udvidet min viden mens jeg har arbejdet med dette spoergsmaal.) Maaske er tiden inde til at afslutte spoergsmaalet her og saa maaske starte et nyt spoergsmaal: "jeg har denne kode der virker i mysql men giver denne error message i php...". Points skal vel gaa til kvadratrodenaf1 (jeg har betalt af paa at pointene i det forige spoergsmaal vist blev givet foer spoergsmaalet var endeligt besvaret.)
<html>
<head>
<title></title>
</head>
<body>
<?
$link = mysql_connect ('christianjorgensen.be.mysql', 'christianjoygen', 'dnyBKKbe') or die(mysql_erorr());
mysql_select_db('christianjoygen') or die('Could not select database');
//****Hoejeste score for alle typer game***
echo "Hoejeste score for hver type game:<br/>";
echo "gname\tgame_id\tuser_id\tuser\tscore<br/>";
$query = "
SELECT gname, game_id, user_id, user, score
FROM game_scores gs
WHERE SCORE = (
SELECT MAX(score)
FROM game_scores
WHERE gname = gs.gname
GROUP BY gname)";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
echo $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\t" . $row[3] . "\t" . $row[4] . "\t" . $row[5];
echo "<br/>";
}
echo "<br/><br/>";
//****Hoejeste 3 scores for hvert angivet game type***
function getGames($game, $antal)
{
$query = "
SELECT gname, game_id, user_id, user, score
FROM game_scores
WHERE gname = " . $game . "
ORDER BY score DESC
LIMIT 0,$antal";
$result = mysql_query($query);
$linie = "";
while ($row = mysql_fetch_array($result))
{
$linie .= $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\t" . $row[3] . "\t" . $row[4] . "\t" . $row[5] . "<br/>";
}
return $linie;
}
echo "Hoejeste 3 scores for hver type game:<br/>";
echo "gname\tgame_id\tuser_id\tuser\tscore<br/>";
echo getGames("'golf'", 3);
echo getGames("'go'", 3);
echo getGames("'ludo'", 3);
echo "<br/><br/>";
//****Kode der virker i mysql men ikke i php***
$query = "SET @number := 0, @game_id := 0;
SELECT
`user`,
`game_id`,
`score`
FROM
(
SELECT
`user`,
`score`,
@number := IF(@game_id = `game_id`,@number + 1,1) AS `number`,
@game_id := `game_id` AS `game_id`
FROM
`game_scores`
ORDER BY
`game_id`,
`score` DESC
) AS `tmp`
WHERE
`number` <= 10; ";
$result = mysql_query($query) or die(mysql_error());
echo "user\tgame_id\tscore<br/>";
while ($row = mysql_fetch_array($result1))
{
echo $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\t" . $row[3];
echo "<br/>";
}
//****slut****
mysql_close($link);
?>