2011-04-28 117 views
2

我运行了这个脚本,但我一直收到我放入的“没有工作”的信息。我知道,在分贝值是正确的,它必须是东西在我的PHP ...PHP:如何运行这个IF语句

  $getadmin = "SELECT role FROM user WHERE user_id=$uid";  
      $showadmin = @mysqli_query ($dbc, $getadmin); // Run the query. 

      $admin = mysqli_fetch_assoc($showadmin); 
      if($admin == 'admin'){ 

      echo 'You are an admin!'; 

      } else { 

      echo 'Did not work'; 

      } 
+2

看mysql_fetch_assoc的'的返回值()':http://php.net/mysql_fetch_assoc – 2011-04-28 17:35:17

+0

$管理将是一个关联数组,不是一个单一的值。 – 2011-04-28 17:45:35

回答

4

试试这个:

 $getadmin = "SELECT role FROM user WHERE user_id=$uid";  
     $showadmin = @mysqli_query ($dbc, $getadmin); // Run the query. 

     $role = mysqli_fetch_assoc($showadmin); 
     if($role['role'] == 'admin'){ 

     echo 'You are an admin!'; 

     } else { 

     echo 'Did not work'; 

     } 
+0

就是这个! - 虽然我不得不扭转陈述... :) – user517593 2011-04-28 17:52:16

+0

我们欢迎^ _^:-) – Neal 2011-04-28 17:52:59

3

未测试

$row = mysqli_fetch_row($showadmin); 
if($row[0] == 'admin'){ .. 
2
 $getadmin = "SELECT role FROM user WHERE user_id=$uid";  
     $showadmin = @mysqli_query ($dbc, $getadmin); // Run the query. 

     $admin = mysqli_fetch_assoc($showadmin); 
     if($admin && $admin[0]['role'] == 'admin'){ 

      echo 'You are an admin!'; 

     } else { 

      echo 'Did not work'; 

     } 
3

fetch_assoc返回一个数组,而不是单个字符串

您需要检查$ admin ['role']而不是$ admin作为值admin。

0
$getadmin = "SELECT role FROM user WHERE user_id={$uid}"; //use {} around variables for interpolation 
$showadmin = @mysqli_query ($dbc, $getadmin); // Run the query. 

if(!$showadmin) 
{ 
    die('<p>ERROR: DB result is null</p>'); 
} 

while($ROW=mysqli_fetch_assoc($showadmin))//returns $ROW associative array 
{ 
    if($ROW['role'] == 'admin') 
    { 
     echo 'You are an admin!'; 
    } 
    else //$ROW['role']!='admin' 
    { 
     echo 'Did not work because it is '.$ROW['role']; 
    } 
}