sql 根据 case 语句查询

sql query depending on case statement

无法获得 运行 查询的正确大小写...我在页面其他地方列出了变量...

if (isset($_SESSION['user_level'])) {...

然后是分页代码块...(效果很好)

和其余代码

$user_level = ($_SESSION['user_level']);


switch ('user_level'){

    case 0:
        $user_level = "SELECT * FROM cases WHERE  $current_user = user_id  ORDER BY $order_by LIMIT $start_from, $per_page ";
        break;
    case 1:
        $user_level = "SELECT * FROM cases WHERE $current_user = user_id  ORDER BY $order_by LIMIT $start_from, $per_page  ";
        break;
    case 2:
        $user_level = "SELECT * FROM cases ORDER BY $order_by LIMIT $start_from, $per_page  ";
        break;
    case 3:
        $user_level = "SELECT * FROM cases ORDER BY $order_by LIMIT $start_from, $per_page ";
        break;
    default:
    $user_level = "SELECT * FROM cases ORDER by $order_by LIMIT $start_from, $per_page";

        }
$query = $user_level;

并以 WHILE 语句结束。 如果我只是使用... $query = "SELECT..." 它 returns 所有行,并且每个用户都可以看到其他人的行。 我已经调整了数据库中的 user_level 以收集线索但没有。 用户级别为new_user、normal_user、technichian、admin。每个人都有不同的权限。

不确定你在这里做什么:

switch ('user_level'){

变量名为 $user_level。所以:

switch ($user_level) {