gpt4 book ai didi

php - mysql中列的排序和排名值

转载 作者:行者123 更新时间:2023-11-29 00:38:59 25 4
gpt4 key购买 nike

假设我有 3 列和 3 行,第一列是 ID,第二列是姓名,第三列是投票。喜欢:

+----+------+-------+
| id | name | votes |
+----+------+-------+
| 1 | bob | 7 |
| 2 | jill | 2 |
| 3 | jake | 9 |
+----+------+-------+

我如何让 PHP 比较投票字段中的值,并根据获得的最高票数对其进行排序,并根据获得的票数将其排名为 #1、2、3 等?

每个值都将显示在单独的页面上。例如,如果我访问 ID 为 1 的“bob's page”,我需要它显示“#2 bob”,因为他的得票排名第二。

最佳答案

您可以创建一个单独的列排名,并在您的投票发生变化时通过运行以下代码来更新它。这种方法将使您更有效率,因为当用户访问他的页面时,您不会一次又一次地对表格进行排序:

    $q = "select * from tableName order by votes DESC";
$a = mysql_query($q);
$count = 1;
while($arr = mysql_fetch_array($a){
$up = "update tableName set(rank) VALUES($count) WHERE name=$arr['name']";
$aq = mysql_query($up);
$count++;
}

现在在单个页面上,您可以只检索排名值并显示

$user = "Bob";
$q = "select rank from tableName where name=$user";
$a = mysql_query($q);
$arr = mysql_fetch_array($a);
echo $arr[0];

另外这个(对其他答案的轻微修改)应该对你有用:-

SELECT @rownum:=@rownum+1 AS rank, name, vote FROM table, (SELECT @rownum:=0) as P ORDER BY vote DESC

关于php - mysql中列的排序和排名值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13115316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com