如何在PHP中创建用户列表?

如何在PHP中创建用户列表?,php,mysql,Php,Mysql,嗨,我正在建立一个带有积分系统的网站 (比方说,如果用户在帖子上做广告,他将获得5分) 我正在使用: SELECT id, username, active, points FROM users WHERE active='1' ORDER BY points DESC 要显示用户的顶部,我还可以显示(使用while循环)他们的位置 但是我怎样才能在他们的个人页面或任何其他页面上显示他们的位置 作为第二个问题,我如何引导用户找到他们在顶部的位置? (如果他是……排

嗨,我正在建立一个带有积分系统的网站

(比方说,如果用户在帖子上做广告,他将获得5分)

我正在使用:

SELECT id, username, active, points 
    FROM users 
    WHERE active='1' 
    ORDER BY points DESC
要显示用户的顶部,我还可以显示(使用while循环)他们的位置

但是我怎样才能在他们的个人页面或任何其他页面上显示他们的位置

作为第二个问题,我如何引导用户找到他们在顶部的位置?
(如果他是……排在第1000位)

如果你想根据点数显示球员的排名或地位,你需要
rownum
。我不认为MySQL有rownum特性,但我发现了一个链接,告诉你如何伪造它:(免责声明:我没有尝试过这个)


。。。当然我要问的是,如果两名球员得分相同,你会怎么做?给他们同样的等级?这可能会变得有点复杂,但也许我链接的解决方案可以调整?

计算比我得分更多的用户数量如何:

select count(*) from users where points > $my_points;

我见过的大多数基于浏览器的游戏等等。。有一个排名系统要做的基本上就是做一个像这样的查询,除了把结果放到一个“排名”表中,并且每天只更新该表一次左右。然后,要找到一个人的位置,只需查询“ranks”表并从auto_inc'd number列中获取值。当然,您可以在每个查询中执行此操作,但这不是非常有效,并且每天显示一次更新的排名或其他通常可以接受的方式

要回答第一个问题,您可以使用以下查询,这将返回用户分数

SELECT points FROM users WHERE id='$userid'

但是我不明白你的第二个问题,你能澄清一下吗?

如果排名靠前的球员都得了100分,那就意味着得了99分的球员将排名第六。因此排名将从1直升至6。当人们问排名2、3、4和5时,这可能看起来很奇怪。我认为这是不可避免的,因为排名系统中没有定义二阶排序标准。因此,您可以简单地将措辞从“您的排名是6”更改为“您并列第6位”。Mysql中有一个默认的第二个标准,即id!谢谢,但在我将select
@place=@place+1
修改为
@place:=@place+1
SELECT points FROM users WHERE id='$userid'