2015-07-14 2 views
-1

Не удается получить правильный случай для выполнения запроса ... У меня есть переменные, перечисленные в другом месте на странице ...SQL-запрос в зависимости от случая заявления

если (Исеть ($ _ 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 ...", он возвращает все строки, и каждый пользователь видит все строки elses. Я скорректировал user_level внутри базы данных, чтобы собрать ключ, но нет. Уровни пользователей - new_user, normal_user, technician, admin. и каждый из них имеет разные разрешения.

+5

'switch ($ user_level) {', no? – chris85

+0

Пожалуйста, проверьте 'переключатель' [документация] (http://php.net/manual/en/control-structures.switch.php). Как сказал chris85, вы должны предоставить переменную, а не статическую строку, если хотите, чтобы она работала. – zilongqiu

ответ

0

Не уверен, что вы делаете здесь:

switch ('user_level'){ 

переменная называется $user_level. Итак:

switch ($user_level) {