3

我有一个奇怪的问题:我的 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,则要求发送两个查询

4

3 回答 3

8

而不是做很多ifs,你应该做elseifs

IE

if () {


} elseif () {


} else {

}

希望有帮助。

于 2012-06-13T15:14:25.597 回答
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']

于 2012-06-13T15:33:30.677 回答
0
if(!printf("Hello")) {
    echo "Hello";
}
else {
    echo " World";
}
于 2016-09-05T13:08:14.390 回答