根据用户级别CASE v。IF过滤结果

时间:2018-08-20 23:13:27

标签: php mysql sql

好的,我对此有疑问。

我尝试使用2个不同的表来限制对记录的访问。

用户基于4个级别。 等级1最高,等级4最低。

users表具有7个字段。另一个表还具有以下由{train _...}

指示的字段
  • userID(AI)整数
  • ** UserLogin varchar
  • UserPass密码
  • UserEmail电子邮件varchar
  • UserActive是int
  • ** UserAgency varchar
  • ** UserComp varchar
  • ** UserMSC varchar
  • ** UserSubMSC int
  • ** UserLevel int
    **表示用户登录后将这些变量设置为变量。

在我的php代码中,我尝试了IF语句,而在我的SQL中,我尝试了CASE语句。

由于不断出现语法错误,我无法使IF语句起作用。解析错误:意外的}在行....

CASE语句适用于SQL,但是一旦加载表单,它将导致动态搜索出现问题。

If陈述
[]是全局变量,{}表示字段名称。

if ('[usr_level]' == 1) 
{ 
    '{train_agencyID}' == '[agencyID]'
}
elseif ('[usr_level]' == 2)
{ 
    '{train_componentID}' == '[componentID]'
}
elseif ('[usr_level]' == 3)
{ 
    '{train_UnitMSC}' == '[mscID]'
}
elseif ('[usr_level]' == 4)
{ 
    '{train_Unit_Comp}' == '[submscID]'
};

CASE语句

WHERE '[usr_level]'
  CASE WHEN '[usr_level]' = 1 THEN 
    train_agencyID = '[agencyID]' 
  END
  OR
  CASE WHEN '[usr_level]' = 2 THEN
    train_componentID = '[componentID]' 
  END
  OR
  CASE WHEN '[usr_level]' = 3 THEN
    train_UnitMSC = '[mscID]'
  END
  OR
  CASE WHEN '[usr_level]' = 4 THEN
    train_Unit_Comp = '[submscID]'
  END

我已经动脑了三天了,我想念一些简单的东西,但是我一生都无法解决。

1 个答案:

答案 0 :(得分:0)

我认为这可能对您有用,这是php的基本switch语句。

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <form  method="post">
    <input type="text" name="user_level"  />
    <input type="submit" value="submit" />
    </form>
  </body>
</html>

<?php


$user_level = filter_input(INPUT_POST, 'user_level');

switch($user_level) {
    case '1':
       $train_agencyID = 'agencyID';
        break;
    case '2':
        $train_componentID = 'componentID';
        break;
    case '3':
         $train_UnitMSC = 'mscID';
    case '4':
         $train_Unit_Comp = 'submscID';
         break;
         default:
         $error = "Invalid selection.";
    }

  if(isset($train_agencyID)) {
    echo $train_agencyID;
  }
  elseif(isset($train_componentID)) {
    echo $train_componentID;
  }
  elseif(isset($train_UnitMSC)) {
    echo $train_UnitMSC;
  }
  elseif(isset($train_Unit_Comp)) {
    echo $train_Unit_Comp;
  }
 ?>

我添加了更多代码,因此您可以对其进行测试并亲自查看输出。

相关问题