私は、ユーザーの統計をチェックし、ポイント、ランク、またはnum_friendsであり、SOに使用されているものと同様のバッジを授与するコードを書くようにしています。このシステムは、ユーザがタスク(投票、コメントなど)を完了すると設定され、そのuser_idが記録され、cronジョブによって5分間隔で評価されるようにキューに入れられます。これはこれを行う最も効率的な方法ですか?私はバッジについて他の投稿を見ましたが、これが好ましい方法として選択された方法であるかどうかはわかりません。バッジシステムと条件を変数として保存していますか?
私が持っているもう1つの質問は、実際にこれらの変数(ポイント、ランク、num_friends)をユーザーに対してチェックすることです。私はいくつかのバッジを持っていて、管理者が変数、演算子(==、> =など)とそれが設定されている値を選択する場所を自分で追加できるようにします。どのように私はIF条件文でそれを評価するのですか?私は、オペレータ用のスイッチを使用してみましたが、変数が正しく評価されるように得ることができない、のように:
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;
}
}
}
私は(evalのを使用するために持っていると思う)が、私は任意の助けをいただければ幸いか、わからないんだけど!
ありがとう、これは私の最初の可変変数に遭遇した - これは彼多くのlps! – mdolon