2010-11-05 87 views
0

我正在使用名爲$sqlStr4v的查詢,該查詢有三個結果,按值totalScore2排序。然後,我試圖使用if/else語句來顯示某些變量,如果在查詢返回的三個結果之一中包含名爲$uv的變量。If/else語句僅適用於變量1的值

我遇到的問題是,只有當$uv等於三個結果中第一個的值時,if/else語句才起作用。我怎樣才能使它爲另外兩個工作?

由於提前,

約翰

查詢:

$sqlStr4v = "SELECT 
    ... 
ORDER BY totalScore2 DESC 
LIMIT 3"; 

的if/else語句:

$resultv = mysql_query($sqlStr4v); 

while ($rowv = mysql_fetch_assoc($resultv)) { 
    if ($rowv ['username'] == $uv) { 

... 

}else 
{ 


... 

} 

break; 

回答

0

第一次迭代中爲你的代碼後,打破相反的確實,在if聲明之前的循環中記錄這三個值,然後在循環之後測試它們。

+0

好的......我該怎麼做? – John 2010-11-05 11:36:58

0

休息是造成這種情況。您可以根據您的要求將其從while循環中取出。雖然會爲每個數據庫行執行,所以如果遇到break,循環會終止。

2

爲什麼break;如果你不想突破循環?

$resultv = mysql_query($sqlStr4v); 

while ($rowv = mysql_fetch_assoc($resultv)) { 
    if ($rowv ['username'] == $uv) { 
    echo 'something'; 
    //break; here if you want to display something at most once. 
    }else 
    { 
    echo 'nothing'; 
    //break; here if you want to display nothing at most once. 
    } 
    //break; here if you only want the first row (result is same as using LIMIT 1) 
}