PHP:如何运行此IF语句

PHP:如何运行此IF语句,php,mysql,if-statement,Php,Mysql,If Statement,我运行了这个脚本,但我一直收到我在其中输入的“未工作”消息。我知道数据库中的值是正确的,它一定是我的PHP中的某个东西 $getadmin = "SELECT role FROM user WHERE user_id=$uid"; $showadmin = @mysqli_query ($dbc, $getadmin); // Run the query. $admin = mysqli_fetch_assoc(

我运行了这个脚本,但我一直收到我在其中输入的“未工作”消息。我知道数据库中的值是正确的,它一定是我的PHP中的某个东西

            $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';

            }
未经测试

$row = mysqli_fetch_row($showadmin);
if($row[0] == 'admin'){ ..  
试试这个:

        $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';

        }

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

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

$getadmin=“从用户选择角色,其中用户\u id={$uid}”//在插值变量周围使用{}
$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'];
    }
}
$showadmin=@mysqli_query($dbc,$getadmin);//运行查询。 如果(!$showadmin) { die(“错误:DB结果为null

”); } while($ROW=mysqli\u fetch\u assoc($showadmin))//返回$ROW关联数组 { 如果($ROW['role']=='admin') { echo‘你是管理员!’; } else/$ROW['role']!='admin' { echo'不工作,因为它是“.$ROW['role'”; } }
查看mysql\u fetch\u assoc()的返回值:$admin将是一个关联数组,而不是单个值。就是这个虽然我不得不改变立场…:)
$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'];
    }
}