Php 需要在循环50次后停止循环
我使用while循环在sql表中显示数据,并将列表项中每一行的数据分组。我需要在显示sql表中的50行之后停止循环。如果有帮助,$id是唯一的,并且对于每一行都是唯一的Php 需要在循环50次后停止循环,php,mysql,Php,Mysql,我使用while循环在sql表中显示数据,并将列表项中每一行的数据分组。我需要在显示sql表中的50行之后停止循环。如果有帮助,$id是唯一的,并且对于每一行都是唯一的 <?php include("db.php"); $query="SELECT * FROM `stories`"; $result=mysqli_query($connection,$query); ?>
<?php
include("db.php");
$query="SELECT * FROM `stories`";
$result=mysqli_query($connection,$query);
?>
<li>
<?php
while ($data = mysqli_fetch_assoc($result)):
$id = $data['id'];
$img_link = $data['img_link'];
$page_path = $data['page_path'];
$tag_alt = $data['tag_alt'];
$category = $data['category'];
if(is_null($page_path)){$page_path = "#";}
?>
<img alt="<?php echo $tag_alt; ?>" src="<?php echo $img_link; ?>" width="200" height="200">
<h3><a href="#"><?php echo $title; ?></a></h3>
<a href="categories/<?php echo $category; ?>.html"><label> </label><?php echo $category; ?></a></span>
<p><?php echo $tag_alt; ?></p>
</li>
<?php
endwhile;
mysqli_close($connection);
?>
“width=“200”height=“200”>
在查询中,您可以这样给出
(对于sqlserver):
(对于Mysql或postgre):
若你们想在下一页中显示51到100的结果,你们应该将页码或计数器传递给一个页面,同时你们也应该稍微修改一下你们的sql
$query="SELECT * FROM `stories`";
换成
$query="SELECT * FROM `stories` LIMIT 50 ";
第一个选项是您可以像这样使用
限制50
$query="SELECT * FROM `stories` LIMIT 50";
第二个是,如果不想使用LIMIT 50,可以维护一个计数器变量
<?php
$counter = 0;
while ($data = mysqli_fetch_assoc($result))
{
$counter+=1;
$id = $data['id'];
$img_link = $data['img_link'];
if($counter>50)
{
break;
}
这是您的解决方案吗
$i=1;
while ($data = mysqli_fetch_assoc($result) && $i <= 50):
{
//Code Here
$i++;
}
$i=1;
而($data=mysqli\u fetch\u assoc($result)&&$i理想的方法应该是进行一个限制为50的查询
$query="SELECT * FROM `stories` LIMIT 50 ";
但是,如果出于某种原因,您需要在同一页面中显示后一个数组,并且在本例中只想显示前50个,您可以执行以下操作:
while ($data = mysqli_fetch_assoc($result)){
$array[]=$data;
}
for($i=0;$i<=49;$i++){
$id = $array[$i]['id'];
//etc...
}
while($data=mysqli\u fetch\u assoc($result)){
$array[]=$data;
}
对于($i=0;$i谢谢大家的帮助。使用限制函数似乎效果最好。我添加了介于和之间的RAND以改进功能
<?php include("db.php"); $query="SELECT * FROM `stories` WHERE id BETWEEN 1 AND 200 order by RAND() LIMIT 20"; $result=mysqli_query($connection,$query); ?
为什么不把限制50
放在SQL中?$query=“SELECT*FROM stories LIMIT 50”";我没有在问题中提到它,但我想以“50行一组”的方式显示数据,并使用一些“上一步/下一步”按钮一次移动50行。我不认为这个限制会起作用?你需要为它分页。@buzrw如果你想分页,你需要先将分页的html放在页面中,几乎总是最好将数据排序/限制在e查询本身,这样您就可以避免在PHP代码中进行查询。IMO+1使您的代码更干净
while ($data = mysqli_fetch_assoc($result)){
$array[]=$data;
}
for($i=0;$i<=49;$i++){
$id = $array[$i]['id'];
//etc...
}
<?php include("db.php"); $query="SELECT * FROM `stories` WHERE id BETWEEN 1 AND 200 order by RAND() LIMIT 20"; $result=mysqli_query($connection,$query); ?