我遇到了一个奇怪的问题:我的if和else语句都在执行。这是我的代码:
if ($sel_user['name'] != $name) {
$query = "UPDATE owner SET
..."
$result = mysql_query($query);
if (mysql_affected_rows() ==1) {
$query2 = "UPDATE queue_acl SET
..."
$result2 = mysql_query($query2);
if (mysql_affected_rows() ==1) {
$_SESSION['updates_occurred'] = true;
} else {
$_SESSION['updates_occurred'] = false;
}
}
}
if ($sel_user['orgId'] != $orgId) {
$query = "UPDATE ownerOrganization SET
..."
$result = mysql_query($query);
if (mysql_affected_rows() ==1) {
$query2 = "UPDATE queue_acl SET
..."
$result2 = mysql_query($query2);
if (mysql_affected_rows() ==1) {
$_SESSION['updates_occurred'] = true;
} else {
$_SESSION['updates_occurred'] = false;
}
}
}
if ($sel_user['date_expires'] != $colVal[0] ||
$sel_user['admin'] != $colVal[4]) {
$query3 = "UPDATE queue_acl SET
..."
$result3 = mysql_query($query3);
if (mysql_affected_rows() ==1){
$_SESSION['updates_occurred'] = true;
} else {
$_SESSION['updates_occurred'] = false;
}
} else {
$_SESSION['updates_occurred'] = false;
$message = "<i>There were no edits to apply</i>";
}
当我运行此命令时,正在发送查询并且所有内容都正在更新,但是“还没有编辑”消息也正在打印
任何人都知道为什么?
编辑:我不想要使用elseif语句;事件不是相互排斥的。也就是说,如果$ sel_user ['name']!= $ name AND $ sel_user ['orgId']!= $ orgId,则需要发送两个查询
答案 0 :(得分:8)
而不是做很多ifs,你应该做其他的
即
if () {
} elseif () {
} else {
}
希望有所帮助。
答案 1 :(得分:8)
如果你不想在if / else if语句中包装所有内容,可以在每个if结尾处设置一个标志。
if($sel_user['name'] != $name) {
// CODE HERE
$flag = true;
}
if(!$flag){
$message = "<i>There were no edits to apply</i>";
}
就是那个或者你可以运行if check off $ _SESSION ['updates_occurred']
答案 2 :(得分:0)
if(!printf("Hello")) {
echo "Hello";
}
else {
echo " World";
}