我正在爲我的啓動創建一個新的比賽腳本。我知道我的基本中間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