php分页示例分享

代码如下:

//分页函数 第一页: url/1 第二页: url/2
function pages($url, $totalnum, $page, $pagesize = 20) {
    $urladd = '';
    $url .= '/';

$totalpage = ceil($totalnum / $pagesize);
    if($totalpage < 2) return '';
    $page = min($totalpage, $page);
    $shownum = 5;   // 显示多少个页 * 2

$start = max(1, $page - $shownum);
    $end = min($totalpage, $page + $shownum);

// 不足 $shownum,补全左右两侧
    $right = $page + $shownum - $totalpage;
    $right > 0 && $start = max(1, $start -= $right);
    $left = $page - $shownum;
    $left < 0 && $end = min($totalpage, $end -= $left);

$s = '';
    $page != 1 && $s .= '<a href="'.$url.($page - 1).$urladd.'">◀</a>';
    if($start > 1) $s .= '<a href="'.$url.'1'.$urladd.'">1 '.($start > 2 ? '... ' : '').'</a>';
    for($i=$start; $i<=$end; $i++) {
        if($i == $page) {
            $s .= '<a href="'.$url.$i.$urladd.'" class="checked">'.$i.'</a>';// checked
        } else {
            $s .= '<a href="'.$url.$i.$urladd.'">'.$i.'</a>';
        }
    }
    if($end != $totalpage) $s .= '<a href="'.$url.$totalpage.$urladd.'">'.($totalpage - $end > 1 ? '... ' : '').$totalpage.'</a>';
    $page != $totalpage && $s .= '<a href="'.$url.($page + 1).$urladd.'">▶</a>';
    return $s;
}
<br>
function mid($n, $min, $max) {
    if($n < $min) return $min;
    if($n > $max) return $max;
    return $n;
}

function page($page, $n, $pagesize) {
    $total = ceil($n / $pagesize);
    $total < 1 AND $total = 1;
    return mid($page, 1, $total);
}

后端部分,我们几句就可以搞定。


代码如下:

$pagesize = 20;    //每页显示多少用户
$n = user_count();      //总用户数
$page = page($page, $n, $pagesize);  //当前页数
$userlist = user_find($page, $pagesize);  //查找出当前页的用户
//html部分,分页效果,直接渲染到页面即可
$pagehtml = pages(url前缀, $n, $page, $pagesize);

(0)

相关推荐

  • php实现的漂亮分页方法

    分页页码显示算法 复制代码 代码如下: /**  * 获取分页的HTML内容  * @param integer $page 当前页  * @param integer $pages 总页数  * @param string $url 跳转url地址    最后的页数以 '&page=x' 追加在url后面  *   * @return string HTML内容;  */ public static function getPageHtml($page, $pages, $url){  //最

  • php分页代码学习示例分享

    复制代码 代码如下: <?php     header("content-type:text/html;charset=utf-8");    //数据库连接    $conn = mysql_connect("localhost", "root", "111") or die("not connnected : ".mysql_error());    mysql_select_db("t

  • php页码形式分页函数支持静态化地址及ajax分页

    之前每次遇到分页,总是得自己写,觉得挺繁琐的,所以本着通用的原则,写了一个分页的方法,特此记录. 目前此分页支持静态化地址分页和无链接地址时的ajax分页(但是js得自己写): 支持的静态地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html 其他形式静态化需根据自己情况进行改写 支持ajax方式分页时,$link参数为空,但提供了pid和optype,其中pid用于获取该页码页数,optype用于一个页面存在多个分页时区分当前触发动作属于哪个分页逻辑 复制代码

  • PHP分页详细讲解(有实例)

    1.前言分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一.对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解.本文适合初学者阅读,所有示例代码均使用php编写.2.原理所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:每页多少条记录($PageSize)?

  • ThinkPHP分页类使用详解

    一.首先需要在MsgManage控制器中加入分页方法 知识点:1.count函数的试用2.Page类实例化操作及相关参数了解3.limit函数了用4.show函数了解 编辑文件admin/Lib/Action/MsgManageAction.class.php 代码如下: 复制代码 代码如下: class MsgManageAction extends CommonAction {    public function index(){     import('ORG.Util.Page'); 

  • zf框架db类的分页示例分享

    zf框架的分页示例 复制代码 代码如下: <?phpisset($_GET['page']) ? $page = $_GET['page'] : $page = 1;//引入Loader类(自动加载类)require_once("Zend/Loader.php");//使用Loader类引入一个Db类Zend_Loader::loadClass("Zend_Db");//引入Zend_Db的状态器Zend_Loader::loadClass("Zen

  • jQuery前端分页示例分享

    大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的内部比较简单. 复制代码 代码如下: /** * pageSize,  每页显示数 * pageIndex, 当前页数  * pageCount  总页数 * url  连接地址 * pager(10, 1, 5, 'Index')使用方法示例 */ function pager(pageSize, pageIndex, pageCoun

  • php分页示例分享

    复制代码 代码如下: //分页函数 第一页: url/1 第二页: url/2function pages($url, $totalnum, $page, $pagesize = 20) {    $urladd = '';    $url .= '/'; $totalpage = ceil($totalnum / $pagesize);    if($totalpage < 2) return '';    $page = min($totalpage, $page);    $shownum

  • 对table和ul实现js分页示例分享

    复制代码 代码如下: (function($) { $.fn.tablepage = function(oObj, dCountOfPage, fresh_id) {  var dPageIndex = 1;  var dNowIndex = 1;  var sPageStr = "";  var dCount = 0;  var oSource = $(this);  var sNoSelColor = "#CCCCCC";  var sSelColor = &q

  • JSP实现的简单分页示例

    本文实例讲述了JSP实现的简单分页示例.分享给大家供大家参考,具体如下: <%@ page language="java" import="java.util.*" contentType="text/html; charset=gbk"%> <%@ page import="com.yx.page.db.*"%> <%@ page import="java.sql.*" %&

  • jQuery pagination分页示例详解

    本文实例为大家分享了jQuery pagination分页示例的具体代码,供大家参考,具体内容如下 前台html <!doctype html> <html> <head> <meta charset="utf-8"> <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" id="v

  • javascript请求servlet实现ajax示例(分享)

    ajax请求是一种无刷新式的用户体验,可以发送GET和POST两种异步请求,现记录如下: GET请求: function sendRequestByGet(){ //定义异步请求对象 var xmlReq; //检测浏览器是否直接支持ajax if(window.XMLHttpRequest){//直接支持ajax xmlReq=new XMLHttpRequest(); }else{//不直接支持ajax xmlReq=new ActiveObject('Microsoft.XMLHTTP')

  • jQuery实现的简单分页示例

    本文实例讲述了jQuery实现的简单分页.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head&

  • adonet基础示例分享(adonet连接数据库)

    adonet基础示例分享 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using Sys

  • php分页示例代码

    <?php  /*  需求,建立一个test数据库,在里边建一个test表,里面就  只要id字段,输入一下数据就可以啦..  由于水平有限,难免出错..  */  $conn = mysql_connect("localhost","root","");  $maxnum = 2;  //每页显示记录条数  mysql_select_db("test", $conn);  $query1 = "SELECT 

随机推荐