0
我有这个算法,我为分页制作。如何限制分页页数 - PHP
的$array
变量是从查询设置页码和限制已设置后的结果。这是PDO :: fetchAll()函数的结果。
的$array["totalCount"]
包含表中的所有行,不仅集,但所有的行数。
我想要的是限制显示的页面数量,并使它像Google风格分页一样,我在网上搜索了很多类似的问题,但是让我难以想象的是猜测如何在其中实现它我的算法与其他算法有很大不同。
在此先感谢。
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; ?>">Último >>></a></li>
<?php
}
?>
</ul>
<?php
}
unset($array["totalCount"]);
return $array;
}
我要去尝试,还是有点困惑。 – JuanBonnett 2014-10-02 01:31:29
你如何获得当前页面变量? – 2014-10-02 01:34:53
$ params [“set”]是当前页面的变量。功能外由GET – JuanBonnett 2014-10-02 01:35:37