<?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主要负责与MySQL数据库交互,处理请求,如查询、排序和过滤数据,然后将处理后的结果返回给前端。 2. AJAX(Asynchronous JavaScript and XML):AJAX不是单一的技术,而是一种使用...
首先,`Read.html`可能是用于展示分页效果的HTML模板,其中可能包含用于调用PHP分页类的代码片段,如链接到不同页码的a标签。通过这些链接,用户可以轻松地在不同的内容页面间导航。 `class.pagination.php`是核心...
在本文中,我们将深入探讨如何使用PHP编程语言结合Smarty模板引擎和MySQL数据库来构建一个用户登录注册系统,并实现分页显示。Smarty是一个流行的PHP模板引擎,它的主要目的是将业务逻辑与视图设计分离,使代码更...
3. **分页显示模板**:分页类通常会包含一些模板设置,允许开发者自定义分页的显示方式,如分页条目数量(listnum)、分页显示模板(template)、选中分页链接模板(activeTemplate)和未选中分页链接模板...
《PHP+MySQL数据库操作类 v1.0:基础与实践》 在PHP开发中,数据库交互是不可或缺的一部分,尤其在动态网站的构建中,PHP与MySQL的结合使用为数据存储和检索提供了强大支持。本文将深入探讨“php+mysql数据库操作类...
在IT行业中,PHP和MySQL是两个非常重要的工具,它们常被用于构建动态网站,特别是处理数据密集型的任务,如新闻信息的搜索和分页显示。本文将深入探讨如何利用PHP和MySQL来实现这一功能。 首先,我们要理解PHP作为...
在这个"新闻php+phpmysql"项目中,我们可以学习到如何构建一个简单的新闻发布和管理系统。以下是关于这个主题的一些关键知识点: 1. **PHP基础**:PHP(Hypertext Preprocessor)是一种服务器端脚本语言,主要用于...
本篇文章将深入探讨一个基于PHP的原生分页类,该类设计简洁,外观与Bootstrap风格相仿,易于使用,且完全免费。 首先,我们需要了解这个分页类的基本工作原理。PHP分页类通常会根据数据库查询结果的总数量和每页...
本主题聚焦于"PHP+MYSQL数据库表编辑类",它涉及到对数据库表的管理和操作,包括列表显示、分页、数据插入、删除以及修改等核心功能。下面将详细介绍这些知识点。 1. **数据库表编辑类**: 在PHP开发中,数据库表...
2. **数据库兼容性**:一个优秀的分页类应支持多种数据库系统,如MySQL、PostgreSQL、SQLite等,通过适配器模式进行数据库操作,使代码更具可扩展性。 3. **SQL语句构建**:类可能包含方法来帮助构建带有LIMIT子句...
压缩包内的两个文件`mysql.php`和`page.inc.php`可能是分页类的具体实现。`mysql.php`可能包含了与MySQL数据库交互的部分,用于执行SQL查询和获取数据。`page.inc.php`则可能包含了分页类的定义,包括上面提到的参数...
在`04mysql 分页类`这个文件中,我们可以期待找到与MySQL数据库交互的分页实现。这个类可能已经封装了与MySQL的连接、查询和分页逻辑。使用此类库时,开发者需要实例化这个类,设置必要的配置,然后调用相应的方法来...
在本项目中,我们主要探讨的是使用PHP编程语言与Smarty模板引擎,以及MySQL数据库构建一个完整的用户管理系统。这个系统包含了用户注册、登录、信息修改、批量删除以及分页显示等功能,是学习Web开发中常见的实战...
【标题】"原创的一个PHP+MYSQL论坛"是一个基于PHP编程语言和MySQL数据库系统的论坛软件解决方案。这个论坛系统是由开发者独立创建的,旨在提供一个在线讨论平台,用户可以在上面发表话题、进行互动交流。PHP是一种...
【PHP+MySQL留言板原码解析】 PHP是一种广泛使用的开源脚本语言,主要用于Web开发,可以嵌入到HTML中,用于动态生成网页内容。MySQL则是一款关系型数据库管理系统,以其高效、稳定和易用性在Web开发领域占据重要...
┃ ┃ ┗━ 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、Bootstrap和jQuery这四个技术栈来构建一个功能完善的前后端系统,实现数据的增删查改(CRUD)操作。以下是关于这些技术及其相互配合的详细说明。 **PHP**: PHP是一种...
总结起来,这个项目结合了PHP和MySQL的强大后端能力,利用Ajax提供流畅的前端交互,以及CSS带来的美观视觉效果,实现了高效、友好的分页表格展示。用户在浏览数据时,可以享受到平滑的滚动体验,而数据加载过程则...
首先,这个分页类可能需要与不同的数据库系统兼容,如MySQL、PostgreSQL、SQLite等,因此它可能使用PDO(PHP Data Objects)作为数据库抽象层,提供统一的接口来执行SQL语句。通过PDO,类可以动态构建分页所需的SQL...