PHP分页 仿GOOGLE和Discuz分页函数

仿GOOGLE和Discuz分页函数 PHP版

这个函数只需要2个参数 当前页码和分页数,$site是路径,文件名能够按本人的需要修改

这个函数不能传送其他参数,如果要传送其他参数,在函数里本人加一个参数就行了

<?php

//计数

$sql = "SELECT count(*) FROM `andycms_title`;";

$numrs = mysql_query($sql) or die(mysql_error());

$numrow = mysql_fetch_row($numrs);

$num = $numrow[0]; //分记录

$total = ceil($num / $perpage); //分页数

//当前页码

if(!isset($_GET[‘page’]) || preg_match(‘~[^0-9]+~’,($_GET[‘page’])) || $_GET[‘page’] <= 0 || $_GET[‘page’] > $total) $page = 1;

else $page = $_GET[‘page’];

$startnum = ($page-1) * $perpage; //记录集开始数

?>

<?php

// Andy分页函数

function fenye ($p,$total)

{

global $site;

$prevs = $p - 10; if ( $prevs <= 0) { $prevs = 1; }

$prev = $prevs - 1; if ( $prev <= 0) {$prev = 1;}

$nexts = $p + 9; if ( $nexts > $total) { $nexts = $total; }

$next = $nexts + 1; if ( $next > $total) {$next = $total;}

$pagenavi = "<a href=\"$site/?page=1\">首页</a> ";

$pagenavi.= "<a href=\"$site/?page=$prev\">上页</a> ";

for ( $i = $prevs; $i <= $p-1; $i++ ) {

$pagenavi.= "<a href=\"$site/?page=$i\">$i</a> ";

}

$pagenavi.= "<strong>$p</strong> ";

for ( $i = $p+1; $i <= $nexts; $i++ ) {

$pagenavi.= "<a href=\"$site/?page=$i\">$i</a> ";

}

$pagenavi.= "<a href=\"$site/?page=$next\">下页</a> ";

$pagenavi.= "<a href=\"$site/?page=$total\">尾页</a> ";

return $pagenavi;

}

?>

效果:

page=1

首页 上页 1 2 3 4 5 6 7 8 9 10 下页 尾页

page=10

首页 上页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 下页 尾页

page=20

首页 上页 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 下页 尾页

另外,能够用一下这个函数,Discuz类型的

<?php

// 分页函数

function multi($num, $perpage, $curr_page, $mpurl) {

$multipage = ‘’;

if($num > $perpage) {

$page = 10;

$offset = 2;

$pages = ceil($num / $perpage);

$from = $curr_page - $offset;

$to = $curr_page + $page - $offset - 1;

if($page > $pages) {

$from = 1;

$to = $pages;

} else {

if($from < 1) {

$to = $curr_page + 1 - $from;

$from = 1;

if(($to - $from) < $page && ($to - $from) < $pages) {

$to = $page;

}

} elseif($to > $pages) {

$from = $curr_page - $pages + $to;

$to = $pages;

if(($to - $from) < $page && ($to - $from) < $pages) {

$from = $pages - $page + 1;

}

}

}

$multipage .= "<a href=\"$mpurl?page=1\">首页</a> ";

for($i = $from; $i <= $to; $i++) {

if($i != $curr_page) {

$multipage .= "<a href=\"$mpurl?page=$i\">$i</a> ";

} else {

$multipage .= ‘<strong>’.$i.‘</strong> ‘;

}

}

$multipage .= $pages > $page ? " … <a href=\"$mpurl?page=$pages\">尾页</a>" : " <a href=\"$mpurl&page=$pages\">首页</a>";

}

return $multipage;

}

?>

效果:

page=1

首页 1 2 3 4 5 6 7 8 9 10 … 尾页

page=10

首页 8 9 10 11 12 13 14 15 16 17 … 尾页

page=20

首页 18 19 20 21 22 23 24 25 26 27 … 尾页

注:本资料为网络资源摘录,贴出来的代码中英文标点可能有些不一致,请自行修改运行。

时间: 2024-07-30 05:36:15

PHP分页 仿GOOGLE和Discuz分页函数的相关文章

PHP实现仿Google分页效果的分页函数

本文实例讲述了PHP实现仿Google分页效果的分页函数.分享给大家供大家参考.具体如下: /** * 分页函数 * @param int $total 总页数 * @param int $pagesize 每页几条 * @param string $pkey url中页面变量名称 * @param string $url 基础url,其中的{page}会被替换为页码 * 依赖函数 request_uri httpInt */ function page($total,$pagesize=10,

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

一.分页简介 1.分页,就是一种将数据库里的数据一部分展示给用户的技术.为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样.最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的. 2.分页的实现方式 1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来.这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式

android listview左右滑动分页(viewpager嵌套listview进行分页),焦点图带圆焦点

1.先上图后说话 2.代码 package com.example.exmp; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import and

自做 数据分页,执行SQL操作数据分页,SQL 分页

WMS.Web.YZMManagement.YZMOrderControl.YZMOrderControl_List.aspx ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33        function ListGrid() {            $("#Button1").click();        } <a id="bt

网页模块拖动,Js仿Google和Windows Live的层拖拽

<HTML><HEAD><TITLE>仿Google和Windows Live的拖拽</TITLE><style type="text/css">body{ margin:10px;}#dragHelper{ position:absolute;/*重要*/ border:2px dashed #000000; background-color:#FFFFFF;filter: alpha(opacity=30);}.norma

Mybatis最入门---分页查询(拦截器分页原理及实现)

[一步是咫尺,一步即天涯] 前文,我们演示了物理分页的Sql实现方式,这种方式使得我们每次在编写查询服务时,不断的重复造轮子.这样的代码实现方式就显得十分的笨拙了.本文是Mybatis分页查询的最后一片内容,我们将介绍基于拦截器的,精巧的实现方式.在阅读这篇文章之前,强烈建议各位看官能够先阅读上文.这样就能对下文我们提及的各种对象及他们之间的关系有一个清晰的关系.好了,废话不多讲,开始我们的正文部分吧. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,SQ

使用Mybatis分页插件PageHelper时的分页问题

使用Mybatis分页插件PageHelper时的分页问题 1对1查询,分页正常 1对多查询,如使用左右连接查询则会导致结果的总记录条数,子记录条数会叠加到主记录条数,导致数据不对称. 总结:使用mybatis时,在一对多的查询并且需要分页的时候需要使用子查询形式. 1) 主记录的resultMap <resultMap id="artWorkMap" type="Artwork"> <id column="id" jdbcTy

discuz分页函数改成基于jqueryd的ajax分页函数

/**  *AJAX分页  *$num 为总共的条数   比如说这个分类下共有15篇文章  *$perpage为每页要显示的条数  *$curpage为当前的页数  *$url为请求路径,  *$obj为html对象,返回给jqery处理  *$page为$multipage这个字符串中要显示的表示页数的变量个数  *$maxpages为最大的页数值   此函数最后有一句$maxpage = $realpages;  */ function multi($num, $perpage, $curp

高仿bootstrap样式的分页插件

链接:https://pan.baidu.com/s/1jKgn2hK 密码:whwl 不知道是自己的第几个分页插件了,以前写一个丢一个,桌面,U盘,移动硬盘.想用的时候找不到,这次传网上来.大家帮忙看看,哪里还需要改进的~ 原文地址:https://www.cnblogs.com/ovocake/p/8379280.html