J'ai un problème étrange. Quand j'exécute ce script, j'obtiens 10 enregistrements de la base de données mais ils sont tous exactement les mêmes. Je n'ai aucune idée de ce que je fais de mal ou comment le réparer. Aidez-moi, s'il vous plaît.Comment puis-je récupérer les 10 derniers enregistrements de la table de base de données mysql?
J'ai des tables AMCMS_highscores, AMCMS_users, AMCMS_games Je veux regarder dans la table AMCMS_highscores, obtenir les 10 derniers enregistrements mais seulement où le gameid de champ est 1997 par exemple. Toute aide est appréciée.
$data = query("SELECT `AMCMS_highscores`.`primkey` , `AMCMS_highscores`.`gameid` , `AMCMS_highscores`.`score` , `AMCMS_users`.`username` , `AMCMS_highscores`.`status` , `AMCMS_highscores`.`userkey` , `AMCMS_games`.`primkey` , `AMCMS_games`.`gamename` FROM `AMCMS_highscores` , `AMCMS_games` , `AMCMS_users` WHERE `AMCMS_highscores`.`gameid` = '$gameid' AND `AMCMS_highscores`.`userkey` != `AMCMS_users`.`userkey` AND `AMCMS_highscores`.`gameid` = `AMCMS_games`.`primkey` AND `AMCMS_highscores`.`status`= 'approved' ORDER by `AMCMS_highscores`.`primkey` DESC LIMIT 0, 10");
Print "<table border cellpadding=3>";
while($info = mysql_fetch_array($data)) {
Print "<tr>";
Print "<th>Score:</th> <td>".$info['score'] . "</td> ";
Print "<th>ID:</th> <td>".$info['userkey'] . " </td></tr>"; }
Print "</table>";
est ici une version au format de la requête:
SELECT
`AMCMS_highscores`.`primkey` , `AMCMS_highscores`.`gameid` ,
`AMCMS_highscores`.`score` , `AMCMS_users`.`username` ,
`AMCMS_highscores`.`status` , `AMCMS_highscores`.`userkey` ,
`AMCMS_games`.`primkey` , `AMCMS_games`.`gamename`
FROM `AMCMS_highscores` , `AMCMS_games` , `AMCMS_users`
WHERE `AMCMS_highscores`.`gameid` = '$gameid'
AND `AMCMS_highscores`.`userkey` != `AMCMS_users`.`userkey`
AND `AMCMS_highscores`.`gameid` = `AMCMS_games`.`primkey`
AND `AMCMS_highscores`.`status`= 'approved'
ORDER by `AMCMS_highscores`.`primkey` DESC
LIMIT 0, 10
OOPS, je ne voulais copier cela, mais je l'ai fait par hasard. Quand son avec le signe « = » (highscores.userkey = users.userkey) je reçois requête vide de sorte que na pas fixer :(
J'espère que cette requête serait plus facile à comprendre :)
SELECT highscores.primkey, highscores.gameid, highscores.score, users.username,
highscores.status, highscores.userkey, games.primkey, games.gamename
FROM AMCMS_highscores AS highscores, AMCMS_games as games, AMCMS_users as users
WHERE highscores.gameid = '$gameid' AND
highscores.status = 'approved'
ORDER by highscores.primkey DESC LIMIT 0, 10
Voici le résultat:
http://www.gamesorbiter.com/FB_app/play.php?gameid=1997 (sous le jeu)
BTW, comment le code-vous votre requête lorsque vous publiez? J'ai cliqué sur le bouton de code et seule la première ligne du code a été codée.
Veuillez formater votre requête pour la rendre lisible afin que nous puissions vous aider – Gopi