如果有明显的致命错误

时间:2015-06-22 12:46:21

标签: php mysql mysqli

错误 - 不能对表达式的结果使用isset()(您可以使用" null!== expression"而不是)

我在if语句和else行的开头之上得到错误。

我按照我的方式完成了代码,因为$ user_id是从下拉框中选择的,除非它是该框中没有值的第一个选项。

下面的代码应该能够判断下拉框中的选项是否有值。如果是这样,它只显示与该用户相关的信息。否则它会显示一切。

 $user_id = $_REQUEST['userid'];
    $user_hack = 0;

    echo $user_hack;

    if(isset($user_id > $user_hack)) 
    {
        echo "Yup";

         $sql = "SELECT ub.id, users.name, individualbadges.badgename, ub.level FROM userbadges ub INNER JOIN users ON users.id = ub.user_id INNER JOIN individualbadges ON individualbadges.id = ub.badge_id WHERE users.id = $user_id ";
    }
    else 
    {
        die("Parameter is missing!"); 

        $sql = 'SELECT ub.id, users.name, individualbadges.badgename, ub.level FROM userbadges ub INNER JOIN users ON users.id = ub.user_id INNER JOIN individualbadges ON individualbadges.id = ub.badge_id';
    }
    $query = mysqli_query($connection, $sql);

1 个答案:

答案 0 :(得分:1)

只需将条件更改为:

if(isset($_REQUEST['userid']) && $_REQUEST['userid'] > $user_hack) 

isset告诉是一个变量被设置,而这个语句可能是true或false,你不能在其上调用isset函数。

在您检查if(isset($_REQUEST['userid']))之前,您无法将其分配给$userid变量。