如何限制分页页数-PHP

如何限制分页页数-PHP,php,pagination,Php,Pagination,我有我为分页做的算法 $array变量是设置页码和限制后查询的结果集。它是PDO::fetchAll()函数的结果 $array[“totalCount”]包含表中所有行的计数,不仅包括该集合,还包括所有行 我想要的是限制显示的页面数量,并使其类似于谷歌风格的分页,我在网上搜索了很多类似的问题,但让我感到困惑的是,我如何在与其他算法大不相同的算法中实现它 提前谢谢 public static function renderPaginationBar($obj, $params) { $a

我有我为分页做的算法

$array
变量是设置页码和限制后查询的结果集。它是PDO::fetchAll()函数的结果

$array[“totalCount”]
包含表中所有行的计数,不仅包括该集合,还包括所有行

我想要的是限制显示的页面数量,并使其类似于谷歌风格的分页,我在网上搜索了很多类似的问题,但让我感到困惑的是,我如何在与其他算法大不相同的算法中实现它

提前谢谢

public static function renderPaginationBar($obj, $params) {
    $array = $obj->getAll($params);
    $set = $params["set"];
    $perSet = $params["limit"];
    $pages = ceil((int)$array["totalCount"] / (int)$perSet);

    if($pages > 1 && $set <= $pages) {
        $query = preg_replace('/set=\d*/i', '', http_build_query($_GET));
        ?>
        <ul class="pagination">
        <?php
        if($set > 1) {
            ?>
            <li><a href="?<?php echo $query; ?>&set=1"><<< Inicio</a></li>
            <li><a href="?<?php echo $query; ?>&set=<?php echo ((int)$set - 1) ?>"><<</a></li>
            <?php
        }

        for($i = 1; $i <= $pages; $i++) {
            $class = $set == $i ? "active" : "";
            ?>
            <li class="<?php echo $class; ?>"><a href="?<?php echo $query; ?>&set=<?php echo $i.""; ?>"><?php echo $i; ?></a></li>
            <?php
        }

        if($set < $pages) {
            ?>
            <li><a href="?<?php echo $query; ?>&set=<?php echo ((int)$set + 1); ?>">>></a></li>
            <li><a href="?<?php echo $query; ?>&set=<?php echo $pages; ?>">&Uacute;ltimo >>></a></li>
            <?php
        }
        ?>
       </ul>
       <?php
    }
    unset($array["totalCount"]);
    return $array;
}
公共静态函数renderPaginationBar($obj,$params){
$array=$obj->getAll($params);
$set=$params[“set”];
$perSet=$params[“限制”];
$pages=ceil((int)$array[“totalCount”]/(int)$perSet);
如果($pages>1&&$set

如果需要,您可以尝试将其显示为“下一页”和“上一页”按钮之间的下拉列表。这样更容易显示所有页码

或者,您可以先获取当前页面的值,添加5并将其存储为“$add”,再将其存储为“$MENUS”,然后将其插入页面按钮中:

<input type="submit" value="<?php echo $page_num;?>" <?php if($pagenum > $add || $pagenum < $minus){ echo "style='display:none'";?>>


如果需要,您可以尝试将其显示为“下一页”和“上一页”按钮之间的下拉列表。这样更容易显示所有页码

或者,您可以先获取当前页面的值,添加5并将其存储为“$add”,再将其存储为“$MENUS”,然后将其插入页面按钮中:

<input type="submit" value="<?php echo $page_num;?>" <?php if($pagenum > $add || $pagenum < $minus){ echo "style='display:none'";?>>


如果需要,您可以尝试将其显示为“下一页”和“上一页”按钮之间的下拉列表。这样更容易显示所有页码

或者,您可以先获取当前页面的值,添加5并将其存储为“$add”,再将其存储为“$MENUS”,然后将其插入页面按钮中:

<input type="submit" value="<?php echo $page_num;?>" <?php if($pagenum > $add || $pagenum < $minus){ echo "style='display:none'";?>>


如果需要,您可以尝试将其显示为“下一页”和“上一页”按钮之间的下拉列表。这样更容易显示所有页码

或者,您可以先获取当前页面的值,添加5并将其存储为“$add”,再将其存储为“$MENUS”,然后将其插入页面按钮中:

<input type="submit" value="<?php echo $page_num;?>" <?php if($pagenum > $add || $pagenum < $minus){ echo "style='display:none'";?>>


我要试试,还是有点困惑。如何获取当前页面变量?$params[“set”]是当前页面的变量。函数外部由GETWell设置。这是一个非常有趣的答案。它呈现但隐藏了您不想显示的页面。我想这就是我要找的。可能是,通过一些额外的逻辑,我可以使它不隐藏页面但根本不呈现页面。干得好。非常感谢。哦,你说得对,silly me..如果可以将其留空,为什么要隐藏它:DDDDI将尝试,仍然有点困惑。如何获取当前页面变量?$params[“set”]是当前页面的变量。函数外部由GETWell设置。这是一个非常有趣的答案。它呈现但隐藏了您不想显示的页面。我想这就是我要找的。可能是,通过一些额外的逻辑,我可以使它不隐藏页面但根本不呈现页面。干得好。非常感谢。哦,你说得对,silly me..如果可以将其留空,为什么要隐藏它:DDDDI将尝试,仍然有点困惑。如何获取当前页面变量?$params[“set”]是当前页面的变量。函数外部由GETWell设置。这是一个非常有趣的答案。它呈现但隐藏了您不想显示的页面。我想这就是我要找的。可能是,通过一些额外的逻辑,我可以使它不隐藏页面但根本不呈现页面。干得好。非常感谢。哦,你说得对,silly me..如果可以将其留空,为什么要隐藏它:DDDDI将尝试,仍然有点困惑。如何获取当前页面变量?$params[“set”]是当前页面的变量。函数外部由GETWell设置。这是一个非常有趣的答案。它呈现但隐藏了您不想显示的页面。我想这就是我要找的。可能是,通过一些额外的逻辑,我可以使它不隐藏页面但根本不呈现页面。干得好。非常感谢。哦,你说得对,si告诉我,如果你能把它留白,为什么要把它藏起来:DDDD