【发布时间】:2012-08-24 13:12:26
【问题描述】:
我正在使用 MySQL 数据库来记录我正在创建的游戏中的玩家高分。正在通过 PHP 文件“highscores.php”访问 MySQL 数据库。
高分都记录在数据库中,但我希望通过 PHP 文件实现实际的排名数字。我希望能够查询特定玩家的排名,而不是只查询他/她的高分。
我正在使用它来获得我的播放器的高分:
$username = $_GET["username"];
$checkID = mysql_query("SELECT * from Highscores WHERE Username =
'$username' ORDER BY Score DESC");
$row = mysql_fetch_array($checkID);
echo $row["Score"];
现在要获得我的玩家在所有其他玩家中的排名,我需要做的就是找到相关行的索引...但是我该怎么做呢?
提前致谢!
【问题讨论】:
-
您知道,您那里有一个潜在的安全漏洞。 SQL 注入可能很讨厌。您可以对行进行暴力搜索,但我怀疑有人会知道一种很酷的 SQL 方法。
-
是的.. 在此处插入强制性的“使用 mysqli 或 PDO”注释。还要在此处插入强制性的“SQL 注入风险”注释。
-
@MikeBrant:不要忘记强制的 XKCD 链接:http://xkcd.com/327/。
-
尽管 PDO 与此无关,但从某种意义上说,PDO 的 fetchall 函数实际上会为您索引它们。它是一个数组数组,因此 $row[0] 将是 #1,依此类推。
-
你要的是特定玩家的最高分排名,还是特定玩家所有高分的排名?