好的,我对此有疑问。
我尝试使用2个不同的表来限制对记录的访问。
用户基于4个级别。 等级1最高,等级4最低。
users表具有7个字段。另一个表还具有以下由{train _...}
指示的字段在我的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
我已经动脑了三天了,我想念一些简单的东西,但是我一生都无法解决。
答案 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;
}
?>
我添加了更多代码,因此您可以对其进行测试并亲自查看输出。