0

私はある種の基本的なテンプレート システムを構築しており、特定のユーザー レベルがアクセスできるテンプレートの数にいくつかの制限を設けています。だから私はこのようなコードをいくつか持っています

if (is_premium($session_user_id)==true){
    $userlevel = premium_level($session_user_id);
} else {
    //if the user is not premium
    $userlevel = 0;
}

次に、私が持っているmysqlで:

SELECT FROM `galleries` where `UserLevel` = 0 and `UserLevel` ='".$userlevel."' 

したがって、ユーザーレベルが 0 よりも高いユーザーは、すべての無料ユーザー テンプレートとそのユーザー レベル テンプレートにアクセスできます。これが最善の方法であるかどうかはわかりませんが、とにかく明確であることを願っています。

どちらの場合も、クエリには 2 つの値が含まれます。最初の UserLevel` = 0 は常に 0 で、2 番目の値はユーザーレベルによって異なりますが、ユーザーレベルが 0 (フリー ユーザー) の場合、クエリは次のように実行されます。 :

   SELECT FROM `galleries` where `UserLevel` = 0 and `UserLevel` =0

私が尋ねているのは、これに問題はありますか?userlevel=0 と userlevel=0 はどこですか?

条件付きクエリの作成に時間を割きたいと思います。

ありがとうございました。

更新: フィードバックの後、条件付きクエリを作成することにしました。お時間をいただきありがとうございます。現在の様子は次のとおりです。

if (is_premium($session_user_id)==true){
    //Check premium accont level
    $userlevel = premium_level($session_user_id);
    $statement = "`galleries` where `UserLevel` = 0 OR `UserLevel` ='".$userlevel."' ";
} else {
    //if the user is not premium
    $userlevel = 0;
    $statement = "`galleries` where `UserLevel` = 0";
}

こっちの方がいいと思います。

4

1 に答える 1

1

両方のUserLevel値が同じでない場合、結果は得られません。AND動作するようにを に変更する必要がありORます。

WHERE `UserLevel` = 0 AND `UserLevel` = 1; // no results, can't be 1 AND 0

代わりに次を使用します。

WHERE `UserLevel` = 0 OR `UserLevel` = 1; // returns values where level = 0 OR level = 1
于 2012-07-14T22:30:41.847 に答える