是否可以在while循环中写入多个条件?如果没有,有什么替代方案?我尝试了它,并返回错误,该错误与设置while循环条件的代码行有关。这是我的意思的一个例子。
$s = 1;
while ($result_row = mysql_fetch_assoc($query) && $s < 5)
{
echo $result_row['id'];
$s++;
}
答案 0 :(得分:24)
这是可能的,但由于=
的{{3}}低于&&
,因此您需要使用括号来确保正确解释您的语句:
while (($result_row = mysql_fetch_assoc($query)) && ($s < 5))
此处不需要$s < 5
周围的括号,但为了清楚起见,我已将它们包括在内。
但是,通过添加LIMIT 5
来修改查询以返回5行会更容易。
SELECT ...
FROM yourtable
ORDER BY ...
LIMIT 5
答案 1 :(得分:1)
你可以尝试:
$s=1
while ($result_row = mysql_fetch_assoc($query))
{
echo $result_row['id'];
$s++;
if($s>5){
break;
}
}
答案 2 :(得分:0)
虽然我认为没有错。反过来就是做这样的事情。
$s = 1;
while ($result_row = mysql_fetch_assoc($query))
{
if($s < 5) {
//enter the condition
}
$s++;
}
答案 3 :(得分:0)
$result_row
的值可能被设置为布尔条件,即mysql_fetch_assoc($query)
是否返回true-ish且$s
是否小于5.因此尝试阅读{{1}如字典不再有用。
您可以使用括号来准确指定解析内容的方式:
$result_row
这样,while (($result_row = mysql_fetch_assoc($query)) && ($s < 5))
设置为$result_row
,这就是你想要的,和循环继续,只要该赋值的逻辑值返回真实的东西 - ish,以及mysql_fetch_assoc($query)
小于5。