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


In an elseif statement, how do I stop the next one from being run

我是一个编程和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();
}

我的问题是两个if语句都执行了,尽管query_uid实际上是而不是 null
我试图阻止第二个语句的运行如果第一个语句条件为真,这可能吗?
我希望你能理解我的问题。我已经想了两个星期了,开始感到绝望。我在网上或书里找不到任何东西来解释我在做什么。

再次解释一下,我不希望第二个条件运行,只有第一个假设它是true。有人能给我提示一下这是怎么可能的吗?我已经尽力了

如果第一个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();
}