J'essaie d'écrire un morceau de code qui vérifie les statistiques des utilisateurs, que ce soit leurs points, leur rang ou num_friends et à leur tour leur attribue un badge similaire à celui utilisé dans SO. Le système est défini de sorte qu'une tâche (vote, commentaire, etc.) soit complétée par un utilisateur, son id_utilisateur est enregistré et mis en file d'attente pour être évalué à intervalles de 5 minutes par un travail cron. Est-ce la façon la plus efficace de le faire? J'ai vu l'autre poste sur les badges, mais je ne suis pas sûr si c'est la méthode qui a été choisie comme méthode préférée.Système de badges et conditions de stockage en tant que variables?
Une autre question que j'ai est de vérifier réellement ces variables (points, rang, num_friends) contre l'utilisateur. J'ai un certain nombre de badges et je veux permettre aux administrateurs d'ajouter le leur, où ils choisissent une variable, l'opérateur (==,> =, etc.) et la valeur à laquelle il est défini. Comment puis-je évaluer cela dans une déclaration conditionnelle IF? J'ai essayé l'aide du commutateur pour les opérateurs, mais ne peuvent pas obtenir les variables à évaluer correctement, comme:
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;
}
}
}
Je pense que je dois utiliser eval() mais je ne sais pas comment, toute aide serait appréciée !
Merci, c'était la première fois que je rencontrais des variables variables - il Lps beaucoup! – mdolon