`
wuhongjun
  • 浏览: 6841 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

PHP,MySQL,模板分页类

阅读更多

<?php 
class Pages{ 
    //数据源
    var $sql;
    //当前页的页码
    var $currentPageNumber;
    //每页的数据条数
    var $itemsPerPage;
    //调用的地址URL
    var $url;
    //总页数
    var $totalPages;
    //数据总数
    var $totalNums;
   
    //显示模块的前缀代码
    var $model_block_pre;
    //显示模块的后缀代码
    var $model_block_end;
    //显示循环数据的前缀代码
    var $model_line_pre;
    //显示循环数据的后缀代码
    var $model_line_end;
    //显示循环数据的主模版
    var $model_main;
    //模版参数
    var $model_argvs;
   
    //初始化函数
    //$sql,数据源SQL
    //$currentPageNumber,当前页的页码
    //$url,调用的地址URL
    //$model,用于显示的数据模版
    //$itemsPerPage,每页的数据条数
    function Pages($sql,$currentPageNumber,$url,$itemsPerPage = 10){ 
        $this->sql = $sql;
        $this->currentPageNumber = $currentPageNumber;
        $this->itemsPerPage = $itemsPerPage;
        $this->url = $url;
        $this->url.=(stristr($this->url,'?')!=false)?'&':'?';
        $this->get_total();
        $this->get_safe_pages();
    } 
   
    //获取总数和总页数
    function get_total(){ 
        $result = mysql_query($this->sql) or die("SQL Error:" . mysql_error());
        $totalNums = mysql_num_rows($result);
        $totalPages = ceil($totalNums/$this->itemsPerPage);
        $this->totalNums = $totalNums;
        $this->totalPages = $totalPages;
        mysql_free_result($result);
    } 
   
    //将当前页保持在安全的范围
    function get_safe_pages(){ 
        if ($this->currentPageNumber > $this->totalPages){ 
            $this->currentPageNumber = $this->totalPages;
        }elseif ($this->currentPageNumber < 1){ 
            $this->currentPageNumber = 1;
        } 
    } 
   
    //获取当前页的数据起始位置
    function get_limit_start(){ 
        $limit_start = ($this->currentPageNumber - 1) * $this->itemsPerPage;
        return $limit_start;
    } 
   
    //获取当前页的数据数目
    function get_limit_nums(){ 
        return $this->itemsPerPage;
    } 
 
    //获取当前页的数据
    function get_data(){ 
        $SQL = $this->sql . " limit " . $this->get_limit_start() . "," . $this->get_limit_nums();
        $result = mysql_query($SQL) or die("SQL Error:" . mysql_error());
        return $result;
    } 
   
    //检查主模版并且提取参数
    function check_main_model(){ 
        $temparray =split('\[',$this->model_main);
        $returnarray = array();
        for($i=1;$i<count($temparray);$i++){ 
            $tempstr = substr($temparray[$i],0,stripos($temparray[$i],']'));
            $templenth = strlen( $tempstr );
            if ($templenth != 0){ 
                $returnarray[] = $tempstr;
            } 
        } 
        $this->model_argvs = $returnarray;
        if ( count($returnarray) == 0 )return false;else return true;
    } 
   
    //根据模版显示数据
    function show_data($model){ 
        $this->model_block_pre = $model[0];
        $this->model_block_end = $model[1];
        $this->model_line_pre = $model[2];
        $this->model_line_end = $model[3];
        $this->model_main = $model[4];
        if ($this->totalNums < 1){ 
            echo '没有数据';
        }elseif ($this->check_main_model() == false){ 
            echo '模版错误';
        }else{ 
            echo $this->model_block_pre;
            $result = $this->get_data();
            while ( $row = mysql_fetch_assoc($result) ) { 
                $tempstr = $this->model_main;
                echo $this->model_line_pre;
                for($i=0; $i < count($this->model_argvs);$i++){ 
                    $preg = "(.*)(\[". $this->model_argvs[$i] ."\])(.*)";
                    $target = "\\1". $row[$this->model_argvs[$i]] ."\\3";
                    $tempstr = ereg_replace($preg,$target,$tempstr);
                } 
                echo $tempstr;
                echo $this->model_line_end;
            } 
            echo $this->model_block_end;
        } 
    } 
   
    //显示分页项目
    function show_pages(){ 
        if ($this->totalNums < 1){ 
            //没有数据
        }else{ 
            echo "<p>";
            echo "<a href=\"".$this->url."page=1\">首页</a> ";
            echo "<a href=\"".$this->url."page=". ($this->currentPageNumber - 1) ."\">上页</a> ";
            echo "<a href=\"".$this->url."page=". ($this->currentPageNumber + 1) ."\">下页</a> ";
            echo "<a href=\"".$this->url."page=". ($this->totalPages) ."\">尾页</a> ";
            echo ($this->currentPageNumber) ."/". ($this->totalPages) ." ";
            echo "每页". ($this->itemsPerPage) ."条/共". ($this->totalNums) ."条";
            echo "</p>";
        } 
    } 

?>

 

分享到:
评论

相关推荐

    php ajax mysql 点击加载更多 分页

    在分页加载更多数据的场景中,PHP主要负责与MySQL数据库交互,处理请求,如查询、排序和过滤数据,然后将处理后的结果返回给前端。 2. AJAX(Asynchronous JavaScript and XML):AJAX不是单一的技术,而是一种使用...

    php按字数分页类

    首先,`Read.html`可能是用于展示分页效果的HTML模板,其中可能包含用于调用PHP分页类的代码片段,如链接到不同页码的a标签。通过这些链接,用户可以轻松地在不同的内容页面间导航。 `class.pagination.php`是核心...

    PHP+Smarty+mysql 用户登录注册分页显示

    在本文中,我们将深入探讨如何使用PHP编程语言结合Smarty模板引擎和MySQL数据库来构建一个用户登录注册系统,并实现分页显示。Smarty是一个流行的PHP模板引擎,它的主要目的是将业务逻辑与视图设计分离,使代码更...

    两款万能的php分页类

    3. **分页显示模板**:分页类通常会包含一些模板设置,允许开发者自定义分页的显示方式,如分页条目数量(listnum)、分页显示模板(template)、选中分页链接模板(activeTemplate)和未选中分页链接模板...

    php+mysql数据库操作类 v1.0

    《PHP+MySQL数据库操作类 v1.0:基础与实践》 在PHP开发中,数据库交互是不可或缺的一部分,尤其在动态网站的构建中,PHP与MySQL的结合使用为数据存储和检索提供了强大支持。本文将深入探讨“php+mysql数据库操作类...

    php mysql新闻信息的搜索和分页

    在IT行业中,PHP和MySQL是两个非常重要的工具,它们常被用于构建动态网站,特别是处理数据密集型的任务,如新闻信息的搜索和分页显示。本文将深入探讨如何利用PHP和MySQL来实现这一功能。 首先,我们要理解PHP作为...

    新闻php+phpmysql

    在这个"新闻php+phpmysql"项目中,我们可以学习到如何构建一个简单的新闻发布和管理系统。以下是关于这个主题的一些关键知识点: 1. **PHP基础**:PHP(Hypertext Preprocessor)是一种服务器端脚本语言,主要用于...

    PHP简单漂亮的分页类.zip

    本篇文章将深入探讨一个基于PHP的原生分页类,该类设计简洁,外观与Bootstrap风格相仿,易于使用,且完全免费。 首先,我们需要了解这个分页类的基本工作原理。PHP分页类通常会根据数据库查询结果的总数量和每页...

    PHP+MYSQL数据库表编辑类

    本主题聚焦于"PHP+MYSQL数据库表编辑类",它涉及到对数据库表的管理和操作,包括列表显示、分页、数据插入、删除以及修改等核心功能。下面将详细介绍这些知识点。 1. **数据库表编辑类**: 在PHP开发中,数据库表...

    完美的php分页类.zip

    2. **数据库兼容性**:一个优秀的分页类应支持多种数据库系统,如MySQL、PostgreSQL、SQLite等,通过适配器模式进行数据库操作,使代码更具可扩展性。 3. **SQL语句构建**:类可能包含方法来帮助构建带有LIMIT子句...

    分页类demo.zip

    压缩包内的两个文件`mysql.php`和`page.inc.php`可能是分页类的具体实现。`mysql.php`可能包含了与MySQL数据库交互的部分,用于执行SQL查询和获取数据。`page.inc.php`则可能包含了分页类的定义,包括上面提到的参数...

    一个用于分页php类库

    在`04mysql 分页类`这个文件中,我们可以期待找到与MySQL数据库交互的分页实现。这个类可能已经封装了与MySQL的连接、查询和分页逻辑。使用此类库时,开发者需要实例化这个类,设置必要的配置,然后调用相应的方法来...

    PHP+Smarty+MySql 用户登录注册修改删除分页显示

    在本项目中,我们主要探讨的是使用PHP编程语言与Smarty模板引擎,以及MySQL数据库构建一个完整的用户管理系统。这个系统包含了用户注册、登录、信息修改、批量删除以及分页显示等功能,是学习Web开发中常见的实战...

    原创的一个PHP+MYSQL论坛

    【标题】"原创的一个PHP+MYSQL论坛"是一个基于PHP编程语言和MySQL数据库系统的论坛软件解决方案。这个论坛系统是由开发者独立创建的,旨在提供一个在线讨论平台,用户可以在上面发表话题、进行互动交流。PHP是一种...

    php+mysql留言板原码

    【PHP+MySQL留言板原码解析】 PHP是一种广泛使用的开源脚本语言,主要用于Web开发,可以嵌入到HTML中,用于动态生成网页内容。MySQL则是一款关系型数据库管理系统,以其高效、稳定和易用性在Web开发领域占据重要...

    PHP开发框架底层【试用于任何系统的PHP+mysql+smarty+oop开发】

    ┃ ┃ ┗━ page.class.php //后台分页类 ┃ ┃ ┃ ┣━ admin_global.php //后台全局变量文件 ┃ ┣━ admin_left.php ┃ ┣━ admin_main.php ┃ ┣━ index.php ┃ ┗━ main.php ┃ ┃ ┣━ cache ...

    php+mysql+smarty的分页原理-适用于初学者

    在PHP开发中,结合MySQL数据库和Smarty模板引擎实现分页是一项常见的需求,尤其对于初学者来说,理解这一过程至关重要。本文将深入探讨PHP、MySQL和Smarty分页的原理,并提供适用于初学者的实践指导。 首先,我们要...

    php+mysql+bootstrap+jquery实现增删查改的前后端

    在本项目中,我们主要探讨如何使用PHP、MySQL、Bootstrap和jQuery这四个技术栈来构建一个功能完善的前后端系统,实现数据的增删查改(CRUD)操作。以下是关于这些技术及其相互配合的详细说明。 **PHP**: PHP是一种...

    php+mysql+ajax分页+表格table+loading效果+css(已测试成功)

    总结起来,这个项目结合了PHP和MySQL的强大后端能力,利用Ajax提供流畅的前端交互,以及CSS带来的美观视觉效果,实现了高效、友好的分页表格展示。用户在浏览数据时,可以享受到平滑的滚动体验,而数据加载过程则...

    一个通用的数据库分页类

    首先,这个分页类可能需要与不同的数据库系统兼容,如MySQL、PostgreSQL、SQLite等,因此它可能使用PDO(PHP Data Objects)作为数据库抽象层,提供统一的接口来执行SQL语句。通过PDO,类可以动态构建分页所需的SQL...

Global site tag (gtag.js) - Google Analytics