if和else语句都在执行

时间:2012-06-13 15:12:39

标签: 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>";
    }

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

任何人都知道为什么?

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

3 个答案:

答案 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";
}