这是我项目中的while循环:
<?php
$select = "SELECT * FROM nk_showcase";
$query = $db->rq($select);
while ($user = $db->fetch($query)) {
?>
<div class="index">
<a href="details.php?id=<?php echo $user['id']; ?>"><img width="200" height="171" alt="<?php echo $user['title']; ?>" src="<?php echo $url; ?>/images/niagakit/<?php echo $user['thumb']; ?>"/></a>
<h3><a href="<?php echo $url; ?>/"><?php echo $user['title']; ?></a></h3>
<p><a href="<?php echo $url; ?>/"><?php echo $user['url']; ?></a></p>
</div>
<?php } ?>
正如您已经知道的那样,这个while循环将循环访问他们在我的数据库中找到的所有项目,所以我的问题是,如何仅针对我的数据库中的10个项目限制此循环以及如何在每次刷新时旋转这些项目? / p>
答案 0 :(得分:11)
在SQL中:
$select = "SELECT * FROM nk_showcase LIMIT 0,10";
或在PHP中:
$counter = 0;
$max = 10;
while (($user = $db->fetch($query)) and ($counter < $max))
{
... // HTML code here....
$counter++;
}
关于轮换,请参阅@ Fayden的回答。
答案 1 :(得分:4)
随机旋转,或作为接下来的10个元素旋转?
大多数RDBMS允许您随机订购行:
-- MySQL
SELECT * FROM nk_showcase ORDER BY RAND() LIMIT 10
-- PostgreSQL
SELECT * FROM nk_showcase ORDER BY RANDOM() LIMIT 10
每次刷新页面时会选择10个随机行
如果要显示接下来的10个元素,则必须对页面进行分页(并使用LIMIT X OFFSET Y语法)
答案 2 :(得分:0)
您必须更改查询$ select,如果您只需要10个第一项,请尝试使用 LIMIT 至10,或者如果您需要对其进行分页,请尝试使用 OFFSET 结果
$select.=" OFFSET $start LIMIT $range;";
然后您需要控制 $ start 和 $ range 变量,例如:
$size_page=10;
if (!$page) {
$start = 0;
$page=1;
}
else {
$start = ($page - 1) * $size_page;
}
您可以注意到$ range应该与$ size_page的值相同,只需要考虑#pages
计算每次迭代的$ start值