我有一个从我的表中选择所有用户的查询。然后我的while循环循环遍历它。如果当前用户与查询行中的用户是好友,则跳过该数据行,如果不是,则显示该行。如何让这个while循环在成功显示3行后停止?为了清楚起见,不只是3行可以被查询。
下面是我的代码:
$query_know="SELECT * FROM users ORDER BY RAND()";
$result_know= mysqli_query($connect, $query_know);
$i= 0;
while ($row_know= mysqli_fetch_array($result_know)) {
$query_friend_test= "SELECT * FROM relations WHERE user1= '".$user_id."' AND user2= '".$row_know['user_id']."'";
$result_friend_test= mysqli_query($connect, $query_friend_test);
if (mysqli_num_rows($result_friend_test) > 0) {
continue;
}
else {
?>
<div class="user-mini">
<div class="user-mini-left">
</div>
<div class="user-mini-right">
<div class="story-user-mini">
<p><a href="<?php echo "profile.php?id=" . $row_know['user_id']; ?>"> <?php echo $row_know['fname'] . " " . $row_know['lname']; ?> </a></p>
</div>
<div class="story-content-mini">
<p> Ohio University </p>
</div>
</div>
</div>
<?php
}
}
?>发布于 2012-09-22 08:56:13
对于要显示的任意$n行数:
for($i = 0; $i < $n; $i++) {
$row_know = mysqli_fetch_array($result_know);
... rest of code ...
}当将其放入for循环中时,这意味着您只能从$i = 0执行到$i < $n,而当您使用while循环时,您将永远这样做,直到您在某个地方发出一条break语句。如果行数是确定的,则可以使用for。
编辑:我是说for,不是foreach。
发布于 2012-09-22 08:54:14
您可以使用break退出while循环。
发布于 2012-09-22 08:58:21
在else部件中执行此条件检查,并在else {}中增加$i++
else if($i <=2) {
?>
<div class="user-mini">
<div class="user-mini-left">
</div>
<div class="user-mini-right">
<div class="story-user-mini">
<p><a href="<?php echo "profile.php?id=" . $row_know['user_id']; ?>"> <?php echo $row_know['fname'] . " " . $row_know['lname']; ?> </a></p>
</div>
<div class="story-content-mini">
<p> Ohio University </p>
</div>
</div>
</div>
<?php $i++;
}
}https://stackoverflow.com/questions/12539786
复制相似问题