源代码显示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>
答案 0 :(得分:2)
将查询更改为:
$query = "SELECT DISTINCT category FROM stories LIMIT 16";
这将确保您获得16个不同的类别。否则,选择哪16行是任意的,它可能会选择16个恰好属于同一类别的故事。
答案 1 :(得分:1)
如果您希望获得16个不同的类别(没有重复),则应使用关键字DISTINCT
SELECT DISTINCT category FROM stories LIMIT 16
如果您想要表category
中16个第一行的stories
(可能有重复项),那么您的请求是正确的。
如果问题是您没有得到您期望的类别,可能会尝试使用ORDER BY
子句确保首先选择的行的正确排序。