我是编程和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
。有人能给我一个关于如何做到这一点的暗示吗?我尽我所能。
答案 0 :(得分:2)
如果第一个if
是true
,那么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();
}