Bir PHP ve üzerinde CodeIgniter-tabanlı web sitesi, kullanıcılarının değil, yığın taşması aksine, çeşitli eylemler için itibar kazanabilirsiniz. Her zaman itibar eylem ödüllendirilir, yeni bir giriş user_id
ile MySQL tablo oluşturulur, reytingi ve puan (örneğin 10 ünü) bu demet değeridir. Aynı zamanda, a-users
tablodaki bir alan, reputation_total
, güncellenir.
Bütün bu tür anlamsız bir referans çerçevesi olmadan olduğundan, kullanıcıların tüm kullanıcıları arasında yüzdelik rütbe göstermek istiyorum. Toplam itibar için, bu yeterli kolay görünüyor. Diyelim ki benim user_id
olup 1138
. Sadece benim daha bir reputation_total
daha az users
tabloda kullanıcıların sayısını, benimkinden daha düşük bir üne sahip kullanıcıların yüzdesini bulmak için toplam kullanıcı sayısını, ve bölmek saymak . Bu doğru, kullanıcı 1138 en yüzdelik sıralaması olacak? Kolay!
Ama aynı zamanda farklı zamanla itibar toplamları açıklıklı görüntüleniyor ediyorum - örneğin, itibar tabloyu sorgulama ve belirli bir tarihten itibaren kazanılan tüm puanları toplayarak içerir ki, son yedi gün içinde kazandı. Örneğin, ben genel 11. yüzdelik olabilir, ancak 50. yüzdelik bu ay ve 97 persentil bugün - Ben de yayılan farklı zaman yüzdelik rütbe göstermek istiyorum.
Bu hayır, ben üzerinden gitmek ve verilen zaman dilimi için tüm kullanıcıların itibar toplamları bulmak zorunda ve ben bu gruba giren nerede o görecekti görünüyor? Bu çok hantal değil mi? Bunu yapmanın en iyi yolu nedir?
Çok teşekkürler.