在elseif语句中,如何阻止下一个运行

时间:2016-09-22 09:52:42

标签: php mysql mysqli

我是编程和PHP的新手,因为我无法使这些代码工作而感到气馁。

$query_uid2 = mysqli_query($db_conx,"SELECT * FROM table WHERE uid2 IS NOT NULL");
$query_uid3 = mysqli_query($db_conx,"SELECT * FROM table WHERE uid3 IS NOT NULL");

//the update queries

$q2 = mysqli_query($db_conx,"UPDATE table SET uid2='$var' WHERE uid1='$uid1'");
$q3 = mysqli_query($db_conx,"UPDATE table SET uid3='$var' WHERE uid1='$uid1'");

//I used mysqli_num_rows function to create 2 more variables for next step...

if ($q2_num > 0 && $q2 == TRUE) {
    echo "success";
    die();
} elseif ($q3_num > 0 && $q3 == TRUE) {
    echo "success";
    die();
}

我的问题是,如果query_uid实际上不是 null,那么if语句都会执行。 如果第一个语句条件为真,我试图阻止第二个语句运行,这可能吗?
我希望你能理解我的问题。我现在已经试图解决这个问题2个星期了,开始感到绝望。我无法在网上找到任何内容或在我的书中找到我正在尝试做的事情。

为了再次解释,我不希望第二个条件运行,只有第一个条件是true。有人能给我一个关于如何做到这一点的暗示吗?我尽我所能。

1 个答案:

答案 0 :(得分:2)

如果第一个iftrue,那么elseif中的内容将无法运行。但是当您将查询的结果分配给这些变量时,它们会在您的条件之前运行。解决方案很简单,只需在条件内运行查询。

if (condition) {
    mysqli_query(...);
}

特别针对您的情况:

if ($q2_num > 0) {
    mysqli_query($db_conx,"UPDATE table SET uid2='$var' WHERE uid1='$uid1'");
    echo "success";
    die();
} elseif ($q3_num > 0) {
    mysqli_query($db_conx,"UPDATE table SET uid3='$var' WHERE uid1='$uid1'")
    echo "success";
    die();
}