- 浏览: 830953 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
xieye:
jetty插件有好几个版本,1.6,1.7,1.8
我选的是用 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
还有,
注:第2部分时,需要先安装jetty,我自己在安装过程 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
说明一下:实际使用中,导入时我并没有错误。2、我把eclips ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
其实还是有一些先决条件的。1是外部环境,2是进步是阶段性的(意 ...
(转载文章)如何愉悦起来:一位精神治疗师的见解 -
mandy_yanzi:
我都已经饿7天了坚持为了我的衣衣
身体健康的问题
首先,用composer安装zf1的部分组件
注意,与另外两个分页组件比较看,zf1的分页组件是最简单 的,因为它智能的判断了总数!
建表:
请自行插入一百条数据。
程序1.php如下:
浏览器效果如下:
"require": { "zf1/zend-db":"1.12.11", "zf1/zend-paginator":"1.12.11" }
注意,与另外两个分页组件比较看,zf1的分页组件是最简单 的,因为它智能的判断了总数!
建表:
CREATE TABLE `test_databases` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `db_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '库名', `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '测试用户id', `created_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `updated_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB
请自行插入一百条数据。
程序1.php如下:
<?php require __DIR__ . "/../vendor/autoload.php"; $params = array ('host' => '127.0.0.1', 'username' => 'root', 'password' => 'root', 'dbname' => 'test1', 'charset' => 'utf8mb4', ); $page=1; if (isset($_GET['page'])) $page = intval($_GET['page']); if ($page<1) { $page=1; } $db = Zend_Db::factory('PDO_MYSQL', $params); /** * 构造基础查询,每个查询该函数的内容都不一样, * 用函数的好处是 : 查询代码不重复。 */ $select = $db->select(); //这里也可以join之类 // 。。。 总之可以比较复杂,这个select。 $select->from("test_databases",["db_name","user_id"]); //参数null不可以省略。否则全选。 $select->where("id<100"); $select->order("id asc" ); $paginator = Zend_Paginator::factory($select); //设置分页对象,包括 当前页,每页显示几个结果,页码导航显示几个链接。 $paginator->setCurrentPageNumber($page) // 设置当前页的页码 ->setItemCountPerPage(4) // 每页显示4条数据 ->setPageRange(7); // 7个链接,这是较常规的,也可以9个链接。 //打印当前页的结果集。 $result = $paginator->getCurrentItems(); foreach ($result as $v) { echo $v["db_name"]." = " .$v["user_id"] ."<br>"; } // 分页链接对象 $page_obj = $paginator->getPages(); // 下面是$page_obj的详细信息。 // first : integer 第一页的页码,固定为1 // firstItemNumber : integer 无用 // firstPageInRange: integer 中间的连续链接中的第一个数字页码 // current : integer 当前页码 // currentItemCount: integer 无用 // itemCountPerPage: integer 无用 // last : integer 最后页的页码 // lastItemNumber : integer 无用 // lastPageInRange : integer 中间的连续链接中的最后一个数字页码 // next : integer 下页的页码 // pageCount : integer 总页数 // pagesInRange : array 中间链接的页码数组,每个元素就是一个整型的页码 // previous : integer 上页的页码 // totalItemCount : integer 无用,结果集总数 echo default_css(); echo get_page_url($page_obj); // END // 重要的构造分页链接的代码。 function get_page_url($page_obj) { $html=''; if ($page_obj->pageCount) { //上页 if (isset($page_obj->previous)) { $html.='<a href="'. get_url($page_obj->previous) . '" rel="prev">Previous</a>'; }else { $html.='<span class="disabled">Previous</span>'; } //首页,若与中间连接重复,则不显示 if ($page_obj->first < $page_obj->firstPageInRange ) { if ($page_obj->current== $page_obj->first) { $html.='<span class="current">'. $page_obj->current .'</span>'; }else { $html .= '<a href="'. get_url($page_obj->first) . '" >'. $page_obj->first .'</a>'; } } if ($page_obj->firstPageInRange - $page_obj->first > 1) { $html .= '<span class="dots">...</span>'; } //中间连接 foreach ($page_obj->pagesInRange as $v) { if ($page_obj->current== $v) { $html.='<span class="current">'. $page_obj->current .'</span>'; }else { $html .= '<a href="'. get_url($v) . '" >'. $v .'</a>'; } } if ($page_obj->last - $page_obj->lastPageInRange > 1) { $html .= '<span class="dots">...</span>'; } //末页,若与中间连接重复,则不显示 if ($page_obj->last > $page_obj->lastPageInRange ) { if ($page_obj->current== $page_obj->last) { $html.='<span class="current">'. $page_obj->current .'</span>'; }else { $html .= '<a href="'. get_url($page_obj->last) . '" >'. $page_obj->last .'</a>'; } } //下页 if (isset($page_obj->next)) { $html.='<a href="'. get_url($page_obj->next) . '" rel="next">Next</a>'; }else { $html.='<span class="disabled">Next</span>'; } $html = "<div class='pagerfanta'><nav>{$html}</nav></div>"; } return $html; } // 分页链接网址函数 function get_url($page) { return "/1.php?page=".$page; } // 分页链接样式表 function default_css() { $css=<<<css <style> .pagerfanta { } .pagerfanta a, .pagerfanta span { display: inline-block; border: 1px solid blue; color: blue; margin-right: .2em; padding: .25em .35em; } .pagerfanta a { text-decoration: none; } .pagerfanta a:hover { background: #ccf; } .pagerfanta .dots { border-width: 0; } .pagerfanta .current { background: #ccf; font-weight: bold; } .pagerfanta .disabled { border-color: #ccf; color: #ccf; } .pagerfanta a, .pagerfanta span { border-color: blue; color: blue; } .pagerfanta a:hover { background: #ccf; } .pagerfanta .current { background: #ccf; } .pagerfanta .disabled { border-color: #ccf; color: #cf; } </style> css; return $css; }
浏览器效果如下:
发表评论
-
召唤神龙 - 安装 centos 8, php 8, mysql 8, laravel 8 的整套 php 运行环境
2020-11-27 16:26 674本文编写时间:2020-11-27 传说集齐龙珠可以召唤神 ... -
centos8 使用阿里镜像快速安装php7.4套件
2020-11-15 00:48 809centos8 使用阿里镜像快速安装php7.4套件 本文只 ... -
centos7 使用阿里镜像快速安装php7.4套件
2020-11-15 00:32 1218本文只考虑centos7 今日 2020-11-16 rem ... -
composer常用命令
2020-11-05 14:46 1441列出当前全局配置 composer config -l -g ... -
期待centos8+php8 + mysql8 + laravel8,8888
2020-10-29 19:24 486期待centos8+php8 + mysql8 目前主要使用 ... -
ubuntu 安装 php7.4以及各类插件
2020-10-24 13:20 1089ubuntu 安装 php7.4以及各类插件 安装系统 最近 ... -
宝塔定义站点
2020-02-24 10:41 2宝塔定义站点。 1111111111111111111111 ... -
让php-fpm以root账号运行
2020-02-19 21:41 810一般来说,我们没有这种需求,但是当需要时, 可以让php-fp ... -
将代码部署到coding.net
2020-01-10 14:20 632coding.net 是一个git仓库,有免费有收费。 首先 ... -
php部署工具deployer技巧 - vendor目录创建
2020-01-06 12:06 889deployer是个好东西,可是每次都composer ,其实 ... -
自定义redis多个实例
2020-01-04 01:17 645假如多个项目部署到同一台服务器,有时会被redis的各项目前缀 ... -
推荐使用php的部署工具 deployer
2020-01-03 16:48 881php部署代码可以使用 https://deployer.or ... -
使用composer 类库 cachetool 清除opcache 的缓存
2020-01-03 16:38 962php的生产服务器上,需要把opche打开。 但有时,会被缓 ... -
laravel容器学习体会
2019-12-31 15:11 654根据文档与实测结果 假设我在app下建一个Services目 ... -
phalcon 自定义超强日志类
2019-12-18 10:00 826phalcon自带的日志文件类,有两个麻烦之处。 1、路径不能 ... -
自定义后台的使用
2019-12-18 05:22 423如果自己写后台,保存用户的表单请求值 所有的情况如下: 1 ... -
phalcon 自定义事件使用的多种方式
2019-12-16 20:43 778方法1:官方文档的方式。 这是控制器: public ... -
phalcon对控制器返回值的使用以输出json
2019-12-16 19:17 817在phalcon里,控制器的Action的方法的返回值没啥用。 ... -
phalcon数据库DB使用实例
2019-12-12 17:12 695整理了一下phalcon的db使用,写了个demo。 ... -
php-redis5.0降级成php-redis4.3
2019-08-22 00:01 889最新版本的php的redis插件,版本是5.0 但是可能会有 ...
相关推荐
主要介绍了zf框架db类的分页示例,代码很简单,大家看一下注释就可以使用了
在本文中,我们将深入探讨`ZF2框架`(Zend Framework 2)下的基本开发案例,这对于初学者理解和掌握这个强大的PHP框架至关重要。`ZF2`是`Zend`公司推出的一个开源、面向对象的Web应用程序开发框架,它遵循MVC(模型-...
ZF2是一个广泛使用的PHP全功能框架,它提供了丰富的工具和组件,用于构建高质量、可维护的Web应用。模板是展示层的重要组成部分,它们负责将数据转化为用户友好的格式。 首先,让我们理解什么是模板。在Web开发中,...
主要介绍了zf框架的Db类select查询器join链表使用示例,需要的朋友可以参考下
zf Zend_Framework 框架 中文手册
其中包括zf框架的配置资料和中文学习手册。对于初学者有一定帮助。
zf框架的校验器使用使用示例.docx
zf2-whoops, 在ZF2框架上,PHP whoops错误 ZF2模块,集成 whoop是PHP的错误处理程序基础/框架。 Out-of-the-box,它提供了一个可以以帮助你调试web项目的错误接口,但是它是一个简单而强大的堆叠错误处理。模块安装...
zf框架的registry使用示例.docx
### zf zend framework 框架实例项目基础配置详解 #### 一、框架介绍与环境搭建 **ZF(Zend Framework)** 是一个开放源代码的PHP框架,它采用MVC(Model-View-Controller)设计模式,能够帮助开发者快速构建稳定...
1. **PHP基础**:了解变量、数据类型、控制结构、函数、类和对象等PHP基础知识是使用此框架的前提。 2. **Zend Framework**:学习其MVC(模型-视图-控制器)架构,路由机制,依赖注入容器,以及模块化设计,这些都...
ThinkPhp仿百度分页类,在ThinkPhp3.1.3下测试通过 Author: 泡泡堂 <46445280@qq.com> <http://371zf.sinaapp.com/> 参照 ThinkPhp3.1.3 及 ThinkPhp3.2.1护展包下的 Page.class.php 说明:在ThinkPhp3.1.3下测试...
下面我们将详细探讨自定义标签的使用步骤以及涉及到的相关知识点。 1. **编写自定义标签处理类**: 类`PagerTag`继承自`TagSupport`,这是JSP标准标签库(JSTL)提供的一般标签处理基类。`doStartTag()`方法是...
Zend Framework (简写ZF)是由 Zend 公司支持开发的完全基于 PHP5 的开源PHP开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不同的部分方便程序的开发和维护。...
在PHP的世界里,ZF2(Zend Framework 2)是一个广泛使用的开源框架,它提供了一整套工具和服务,帮助开发者构建高效、可维护的Web应用程序。本文将深入探讨ZF2中的两个核心组件——路由(Router)和加载器(Loader)...
学习C#,你需要理解面向对象编程的基本概念,如类、对象、继承、多态和封装,以及.NET框架、Visual Studio IDE和调试工具的使用。 综上所述,我们可以从这些标签中提炼出一系列IT相关主题:图像处理、Web开发(包括...
这意味着这个XML组件原本是ZF1框架的一部分,但现在被单独拿出来作为一个独立的模块使用。这可能是因为开发者希望在不依赖整个框架的情况下,利用该XML处理功能,或者为了方便其他项目复用和维护。 **标签解析:** ...
综上所述,`ZF1 Validate_File`组件是PHP开发中用于安全验证文件上传的重要工具,尤其适用于那些基于Zend Framework 1的项目。它提供了一套完整的验证机制,有助于提升应用的安全性和用户体验。