我有一定数量的潜在帖子。我们不知道有多少,但系统设置为每页显示12个。在底部,我希望它显示页数。
首先,如果我们收到帖子:
<?php $pages = get_posts('category_name=news'); ?>
现在我们要做的是
这些想法是让他们排成1 | 2 | 3 | 4 | 5等。
有什么想法吗?
答案 0 :(得分:10)
你在想它。如果您知道结果数量和每页的最大结果数,那么您就知道需要多少页面。我想这是WordPress,因为你已经使用了get_posts,所以应该返回一个包含帖子的数组,所以:
<?php
$max_per_page = 12; //Max results per page
$posts = get_posts('category_name=news');
$total_posts = count($posts); //Total number of posts returned
$pages = ceil($total_posts / $max_per_page);
for($i = 1;$i <= $pages;$i++)
{
echo '<a href="?page=' . $i . '">' . $i . '</a>'; //Or whatever the link needs to be
if($i != $pages)
{
echo "|"
}
}
?>
答案 1 :(得分:1)
计算出找到了多少帖子
SELECT COUNT(*) FROM *table* WHERE *conditions*...
将该数字除以12
SELECT COUNT(*)/12 AS num_pages FROM *table* WHERE *conditions*...
OR
$count = mysql_query(*see #1*)/12.0; // NOT JUST 12!
将该数字四舍五入到最接近的整数(UP永不下降)
$count = ceil($count);
将该数字除以1并给出1进入它的次数。
真的?将1号任意号码分开归还其中!
因此根据需要提供尽可能多的页码。
不是真的。您如何知道用户当前所在的特定页面?你如何计划实际分页?如果帖子已经填充,那么每次都会浪费1-2个查询,只是为了你的分页。
您基本上是在尝试进行分页,但是在不了解大量SQL的情况下,您最好使用现有的解决方案(或者至少重新考虑现有代码以限制查询)