从mysql获取数据时,有没有办法限制while循环?
$query = "SELECT *
FROM `table`
WHERE user_id = '$id'
ORDER BY `ID` DESC";
$result = mysql_query($query);
while ($info = mysql_fetch_assoc($result)) {
//stuff
}
这里我不想使用mysql的LIMIT函数,我可以限制while而不是那个循环吗?
由于
答案 0 :(得分:8)
当循环到达目标时,您始终可以break
。否则,您可以使用Nick建议的for
循环。
$count = 0;
while ($count < 4 && $info = mysql_fetch_assoc($result)) {
//stuff
$count++;
}
但请注意,使用LIMIT
命令限制查询的结果集可能更好。
答案 1 :(得分:3)
使用for
循环。例如,循环直到五行......
for ($i = 0; $info = mysql_fetch_assoc($result) && $i < 5; ++$i) {
// do stuff
}
答案 2 :(得分:1)
只需添加行数检查:
while ($rowcount < 100 && $info = mysql_fetch_assoc($result)) {
$rowcount += 1;
//stuff
}
答案 3 :(得分:1)
您可以使用break
结束循环。
所以,它可能是
$result = mysql_query($query);
$count=0;
while ($info = mysql_fetch_assoc($result)) {
if($info=="what you're looking for"){ $count+=1; }
if($count >= 4){ break; }//break will exit the while loop
}
break php docs
答案 4 :(得分:0)
你总是可以提前跳出你的PHP循环 - 但你应该使用mysql LIMIT子句 - 整个结果集从数据库中获取并在你调用mysql_query()时转移到客户端,可能会创建内存和性能问题。