我有一个查询,从我的表中选择所有用户。然后我的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
}
}
?>
答案 0 :(得分:1)
对于您要显示的$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
。
答案 1 :(得分:0)
您可以使用break
退出while循环。
答案 2 :(得分:0)
在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++;
}
}