或不起作用

时间:2014-09-08 14:42:27

标签: php if-statement

我有一个带有3 OR的IF语句,但它没有运行。

$package = mysqli_real_escape_string($con, $_GET['package']);
    if ($package != 500 || $package != 1100  || $package != 2400 ) {
        $error = "Invalid Package.";
    }

它总是回声“无效的包裹”。 $ package是500,1100,2400还是其他任何东西。

我可能做错了什么?

4 个答案:

答案 0 :(得分:6)

经典错误: - )

您希望&&不是||

$package = mysqli_real_escape_string($con, $_GET['package']);
if ($package != 500 && $package != 1100  && $package != 2400 ) {
    $error = "Invalid Package.";
}

我认为你的有效套餐是500,1100和2400 ......哼......大小???

答案 1 :(得分:1)

你想要做的是创建一组错误答案,以防将来出现1654号码:

$package = mysqli_real_escape_string($con, $_GET['package']);
$valid_packages = array(500, 1100, 2400);
if (!in_array($package, $valid_packages)) {
    $error = "Invalid Package.";
}

如果$package不是500,1100,2400那么它就是无效的。

将它作为一个数组,可以在以后轻松修改(更多/更少的包),并且更容易连接到外部数据库。

答案 2 :(得分:0)

如果你想要其中一个是真的,请删除(!):

$package = mysqli_real_escape_string($con, $_GET['package']);
    if ($package == 500 || $package == 1100  || $package == 2400 ) {
        $error = "Invalid Package.";
    }

答案 3 :(得分:0)

如果您正在寻找其中一个是真的,那么代码

$package = mysqli_real_escape_string($con, $_GET['package']);
if ($package == 500 || $package == 1100  || $package == 2400 ) {
$error = "It has one of them.";
}