[英]While loop only delivering first sql row
源代码显示了LIMIT要求的16个项目。 但是,所有内容仅是“类别”列中的第一项。 我如何才能显示列的前16行,而不仅仅是第一行。
<div id="contentContainer" class="trans3d">
<?php include("../scripts/db.php");
$query="SELECT category FROM stories LIMIT 16";
$result=mysqli_query($connection,$query);
?>
<section id="carouselContainer" class="trans3d">
<?php
while($data=mysqli_fetch_assoc($result)):
$genre=$data['category'];
$genre_path=$genre.".php";
$genre_img_path="../images/genre_images/".$genre.".jpg";
?>
<a href="$genre_path">
<figure class="carouselItem trans3d">
<?php echo $genre;?>
<img src="<?php echo $genre_img_path;?>" alt=""/>
</figure>
</a>
<?php
endwhile;
mysqli_close($connection);
?>
</section>
</div>
将查询更改为:
$query = "SELECT DISTINCT category FROM stories LIMIT 16";
这将确保您获得16个不同的类别。 否则,选择哪16行是任意的,并且可能会选择恰好属于同一类别的16个故事。
如果您希望获得16个不同的类别(没有重复的类别),则应使用关键字DISTINCT
SELECT DISTINCT category FROM stories LIMIT 16
如果要从表stories
的前16行中选择category
(可能有重复项),那么您的要求是正确的。
如果问题是您没有获得所需的类别,则可以尝试使用ORDER BY
子句确保第一个选定行的正确顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.