Ben olmak, bir kullanıcılar istatistikleri kontrol kodu bir parça yazmaya çalışıyorum onların noktaları, rütbe veya num_friends ve dönüş ödül onları SO kullanılan benzer bir rozet. Sistem, bir görev (vb, yorum, kadar oy) bir kullanıcı tarafından tamamlandığında, onların User_id kaydedilir şekilde ayarlanır ve bir cron işi ile 5 dk aralıklarla değerlendirilmelidir için sıraya. Bu yapmanın en etkili yolu nedir? Ben rozetleri hakkında diğer yazı gördüm ama bu tercih edilen bir yol olarak seçildi yöntemi ise emin değilim.
Ben başka bir soru aslında kullanıcıya karşı bu değişkenleri (sayı, rütbe, num_friends) kontrol ilgili. Ben rozetleri bir dizi var ve onlar bir değişken seçin nerede yöneticileri kendi eklemek için izin istiyor, operatör (==,> =, vb) ve değeri, ayarlanmış oluyor. Bunu nasıl bir IF koşullu açıklamada değerlendiriyorsunuz? Ben operatörler için anahtar kullanmadan çalıştı ama değişkenlerin doğru değerlendirilmelidir alınamıyor gibi:
function checkbadges($userid,$points,$rank,$friends){
global $database;
$q = $database->db_query("SELECT * FROM badges");
while($bq = $database->db_fetch_assoc($q)) {
switch($bq[badge_sign]) {
case "1":
if($bq[badge_var] == $bq[badge_value])
givebadge($userid, $bq[badge_id]);
break;
case "2":
if($bq[badge_var] >= $bq[badge_value]))
givebadge($userid, $bq[badge_id]);
break;
case "3":
if($bq[badge_var] <= $bq[badge_value]))
givebadge($userid, $bq[badge_id]);
break;
case "4":
if($bq[badge_var] != $bq[badge_value]))
givebadge($userid, $bq[badge_id]);
break;
}
}
}
Ben (eval kullanmak zorunda düşünüyorum) ama herhangi bir yardım mutluluk duyacağız nasıl, emin değilim!