2016-09-22 34 views
-2

我是編程和PHP的新手,並且由於無法使代碼生效而感到相當沮喪。在elseif語句中,如何停止運行下一個代碼

$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(); 
} 

我的問題是,這兩個if語句進行,儘管該query_uid其實null
我想停止運行的第二條語句,如果條件爲真的第一條語句,這是可能的嗎?
我希望你能理解我的問題。我一直試圖弄清楚這個問題現在兩週,開始感到無望。我無法在網上或在我的書中找到任何解釋我想要做的事情。

再次解釋它,我不想第二個條件運行,只有第一個假設它是true。有人能給我一個提示,說明這可能嗎?我盡我所能。

+1

不要你還明白,你把所有的疑問已經運行,*之前*任何條件?因此這些條件對查詢沒有絲毫影響? –

+0

如果您想要根據某些條件運行某個查詢,則必須將此查詢執行放入此條件中。不在上面。 –

回答

2

如果第一個iftrue,那麼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(); 
}