2010-11-05 89 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) 
}