if和else声明都是正确的

nv3*_*v39 3 php if-statement

我有一个奇怪的问题:我的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>";
    }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,正在发送查询并且所有内容都正在更新,但是"还没有编辑"消息也正在打印

谁知道为什么?

编辑:我希望ELSEIF语句中使用; 事件不是相互排斥的.也就是说,如果$ sel_user ['name']!= $ name AND $ sel_user ['orgId']!= $ orgId,则需要发送两个查询

Rob*_*est 8

你应该做其他事情,而不是做很多ifs

if () {


} elseif () {


} else {

}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.


小智 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>";
}
Run Code Online (Sandbox Code Playgroud)

就是那个或者你可以运行if check off $ _SESSION ['updates_occurred']