我使用php将数据插入数据库。我有一个叫做games的表,它是这样定义的:
ID | Score | Rank
我希望每次添加新行时都更新rank列。排名栏必须按得分对游戏进行排序。
例如:
ID | Score | Rank
1 | 5 | 2
2 | 9 | 1
当我添加新行(id=3,score=15)时,我的表将如下所示:
ID | Score | Rank
1 | 5 | 3
2 | 9 | 2
3 | 15 | 1
我在php中尝试过,但似乎不起作用:
try {
$bdd->exec("INSERT INTO games(score) VALUES('$score')");
} catch (Exception $e) {
die ($e->getMessage());
}
try {
$bdd->exec("UPDATE games set rank=(SELECT @curRank := @curRank + 1
AS rank FROM games g, (SELECT @curRank := 0) r
ORDER BY score;)");
} catch (Exception $e) {
die ($e->getMessage());
}
你知道如何用php来实现这一点吗?或者有没有办法将列值默认设置为分数的排名?
1条答案
按热度按时间bvjxkvbb1#
这对我有用。无论如何谢谢你。