繁体   English   中英

使用PHP Maths和Round计算页数

[英]Calculate number of pages using PHP Maths and Round

我有一定数量的潜在职位。 我们不知道有多少,但系统设置为每页显示12个。 在底部我希望它显示页数。

首先,如果我们得到帖子:

<?php $pages =  get_posts('category_name=news'); ?>

现在我们想做的是

  1. 找出它找到了多少帖子
  2. 将该数字除以12
  3. 将该数字舍入到最接近的整数(UP永不下降)
  4. 将该数字除以1并给出1进入它的次数。
  5. 从而根据需要提供尽可能多的页码。

想法是将它们排成1 | 2 | 3 | 4 | 5等..

有任何想法吗?

你在想它。 如果您知道结果数量和每页的最大结果数,那么您就知道需要多少页面。 我想这是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. 找出它找到了多少帖子

    SELECT COUNT(*) FROM *table* WHERE *conditions*...

  2. 将该数字除以12

    SELECT COUNT(*)/12 AS num_pages FROM *table* WHERE *conditions*...

    要么

    $count = mysql_query(*see #1*)/12.0; // NOT JUST 12!

  3. 将该数字舍入到最接近的整数(UP永不下降)

    $count = ceil($count);

  4. 将该数字除以1并给出1进入它的次数。

    真?? 分开任意一个号码返回它自己!

  5. 从而根据需要提供尽可能多的页码。

    并不是的。 您如何知道用户当前所在的特定页面? 你如何计划实际分页? 如果帖子已经填充,那么每次都会浪费1-2次查询,只是为了您的分页。

您基本上是在尝试进行分页,但是在不了解大量SQL的情况下,最好使用现有的解决方案(或者至少重新考虑现有代码以限制查询)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM