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