Php 如何对mysql数据进行排序并找到位置?

Php 如何对mysql数据进行排序并找到位置?,php,mysql,sorting,Php,Mysql,Sorting,我有3行的mysql数据用户id,考试id,分数。 我想根据分数和考试id找到每个用户的排名位置。 如何使用php代码进行SQL查询。请帮帮我。提前谢谢 这是部分代码 $p = "SELECT * FROM IDTABLE WHERE EID = '$info[EID]'"; $rowp = mysqli_query($conn, $p); while (($ret = mysqli_fetch_assoc($rowp)) > 0) { $q = "SELECT * FROM IN

我有3行的mysql数据用户id,考试id,分数。 我想根据分数和考试id找到每个用户的排名位置。 如何使用php代码进行SQL查询。请帮帮我。提前谢谢

这是部分代码

$p = "SELECT * FROM IDTABLE WHERE EID = '$info[EID]'";
$rowp = mysqli_query($conn, $p);
while (($ret = mysqli_fetch_assoc($rowp)) > 0) {
    $q = "SELECT * FROM INFOTABLE WHERE EID = '$ret[EID]'";
    $rowq = mysqli_query($conn, $q);
    while (($retq = mysqli_fetch_assoc($rowq)) > 0) {                                
        $user[$ret['EID'] . $retq['UID']] = $retq['Marks'];                                
    }
}
arsort($user);
var_dump($user);

首先,你应该考虑一些事情:

在发布新的问题之前,最好先搜索已回答的问题,因为这是堆栈溢出代码的一部分 尽可能清晰地提供更多您想要的信息 提供更多详细信息,例如:您需要sql结构 不过,我会尝试给你一个提示-希望它有帮助

例如,您希望根据用户标识的标记来订购用户标识:

按标记asc从我的表格顺序中选择用户id

例如,您希望根据用户的分数和考试id订购用户id:

从我的表格中按分数顺序选择用户id,考试id asc

例如,您希望根据用户的分数创建一种排名:

设置@rank:=0; 选择 *, @排名:=@rank+1为排名 从我的桌子上 按标记ASC订购

例如,您希望从特定的

设置@rank:=0; 从选择中选择* *, @排名:=@rank+1 从我的桌子上 order by将ASC标记为秩,其中user_id=2

希望这有帮助!您可以获得有关mysql排名的更多信息


尊敬,

欢迎,为了提高您在上的体验,请阅读如何询问an,以及and和如何创建a,我们非常愿意帮助您修复代码,但我们不是为您编写的。请,我迫切需要答案。您甚至不告诉我们您是否正在使用mysqli_uu或PDO。SO的想法是,您尝试编写您的oen代码,如果您对该代码有问题,请在此寻求帮助。谢谢,我使用mysqli。这是部分代码。谢谢我已经自己解决了这个问题。我使用了php关联数组。太棒了!我认为phparray可能是一个好主意,您也可以使用我以前提供的东西来做类似的事情。您可以尝试这两种方法,并检查哪一个函数的性能更好:getRank$user\u id、$exam\u id、$limit=50{$sql=SELECT@rank:=@rank+1作为秩、user\u id、exam\u id、my\u表中的标记、按标记排序时选择@rank:=1 ASC limit 0、$result=mysql\u query$sql;而$row=mysql\u fetch\u assoc$result{if$row['user\u id']=$user\u id{return$row['Rank'];}}}return-1;}