我正在为我的启动创建一个新的比赛脚本。我知道我的基本中间php的方式。我一直在为这个网站设计一个技术精湛的系统,它包括使用每个成员在锦标赛中赢得比赛时获得的XP或经验积分。我目前试图克服的问题如下与基于技能的排名系统卡住
我想给具体的排名只有少数用户在网站上。
例
Platinum - top 3% of users with highest xp
Gold - top 5% of users with highest xp - after the first 3%
Bronze - rest of the users on site with xp
Unranked - users with 0 xp
这是一个基本的击穿。我真正需要做的就是为此创建一个分类系统,在用户端所有这些都是可见的,这是一个显示等级和地点示例的大图标,网站上的第一个等。
我遇到的问题是正确识别或分离前3%的用户,然后排在前5%等。很容易给排名我所做的就是通过xp降序使用cron作业来订购用户在午夜,我会写在与用户ID相关的数据库列的排名。通过这种方式,当用户访问页面时,所有需要加载以查看页面的都是db列,而不是在页面加载时筛选所有成员。有没有更好的方法来设置这不会影响页面加载时间,并允许我实时显示统计信息?
我还在学习,所以我不是要求直接答复,我将不胜感激任何和所有的帮助,因为它可以让我找出正确的方法来设置它,我可以从中学习。我在这里找到的所有排名系统以及谷歌只需要1-5星或喜好和不喜欢。先谢谢你。 (我包括pdo标签,因为我使用pdo)
好的,谢谢你的帮助。这是我到目前为止的地方。
$u_count=d_c("select * from users where xp > 0");
$p = $u_count * .03;
$plat_update=d_u("update user where rank Between 1/$p set badge='platinum'");
$g = $u_count - $p;
$gold = $g * .05;
$g_start = $p + 1;
$gold_update=d_u("update user where rank Between $g_start/$gold set badge='gold'");
这是正确的吗?有没有更好的做事方式? (我遗漏了青铜,没有排名,我唯一的问题是铂和金)
将未排序的用户百分比计算时计入 –
没有包括的唯一用户将是排名用户。 – ICJ