- 浏览: 1779825 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (641)
- vb2005xu自己动手系列 (174)
- vb2005xu开发文章转摘 (47)
- vb2005xu发发牢骚 (99)
- vb2005xu新技术灌水 (12)
- vb2005xu网络资源集锦 (21)
- vb2005xu软件学习 (60)
- 英语学习 (3)
- JavaScript 学习 (54)
- JAVA OOP 巩固 之 CustomDatabase 的开发 (5)
- 2013年9月之前所在公司 记事 (7)
- FleaPHP/QEEPHP 资料 (87)
- JAVA MAIL 学习篇 (4)
- Python turbogears (5)
- Rails 个人开发四部曲 (3)
- 名人传 (8)
- iwp framework (5)
- 高考零分作文 (5)
- startos (8)
- lua (0)
- 职场 (1)
最新评论
-
hellotieye:
自己 评论 自己 挺嗨呀
Mysql sql查询时 if 的用法 -
igevin:
转载请标明出处,转自Gevin的博客http://blog.i ...
RESTful API 编写指南 -
Theobob:
...
实现简单的ACL -
vb2005xu:
比如 对于 curl 调用就不再需要 加各种if 判断了,
$ ...
搞一个简单的数据打印工具AsDebug の Laravel -
vb2005xu:
http://geekplux.com/wiki/
YII2 模块内自定义错误页
<?php ///////////////////////////////////////////////////////////////////////////// // FleaPHP Framework // // Copyright (c) 2005 - 2008 QeeYuan China Inc. (http://www.qeeyuan.com) // // 许可协议,请查看源代码中附带的 LICENSE.txt 文件, // 或者访问 http://www.fleaphp.org/ 获得详细信息。 ///////////////////////////////////////////////////////////////////////////// /** * 定义 FLEA_Helper_Pager 类 * * @copyright Copyright (c) 2005 - 2008 QeeYuan China Inc. (http://www.qeeyuan.com) * @author 起源科技 (www.qeeyuan.com) * @package Core * @version $Id: Pager.php 1016 2007-11-21 13:53:59Z qeeyuan $ */ /** * FLEA_Helper_Pager 类提供数据查询分页功能 * * FLEA_Helper_Pager 使用很简单,只需要构造时传入 FLEA_Db_TableDataGateway 实例以及查询条件即可。 * * @package Core * @author 起源科技 (www.qeeyuan.com) * @version 1.0 */ class FLEA_Helper_Pager { /** * 如果 $this->source 是一个 FLEA_Db_TableDataGateway 对象,则调用 * $this->source->findAll() 来获取记录集。 * * 否则通过 $this->dbo->selectLimit() 来获取记录集。 * * @var FLEA_Db_TableDataGateway|string */ var $source; /** * 数据库访问对象,当 $this->source 参数为 SQL 语句时,必须调用 * $this->setDBO() 设置查询时要使用的数据库访问对象。 * * @var FLEA_Db_Driver_Abstract */ var $dbo; /** * 查询条件 * * @var mixed */ var $_conditions; /** * 排序 * * @var string */ var $_sortby; /** * 计算实际页码时的基数 * * @var int */ var $_basePageIndex = 0; /** * 每页记录数 * * @var int */ var $pageSize = -1; /** * 数据表中符合查询条件的记录总数 * * @var int */ var $totalCount = -1; /** * 数据表中符合查询条件的记录总数 * * @var int */ var $count = -1; /** * 符合条件的记录页数 * * @var int */ var $pageCount = -1; /** * 第一页的索引,从 0 开始 * * @var int */ var $firstPage = -1; /** * 第一页的页码 * * @var int */ var $firstPageNumber = -1; /** * 最后一页的索引,从 0 开始 * * @var int */ var $lastPage = -1; /** * 最后一页的页码 * * @var int */ var $lastPageNumber = -1; /** * 上一页的索引 * * @var int */ var $prevPage = -1; /** * 上一页的页码 * * @var int */ var $prevPageNumber = -1; /** * 下一页的索引 * * @var int */ var $nextPage = -1; /** * 下一页的页码 * * @var int */ var $nextPageNumber = -1; /** * 当前页的索引 * * @var int */ var $currentPage = -1; /** * 构造函数中提供的当前页索引,用于 setBasePageIndex() 后重新计算页码 * * @var int */ var $_currentPage = -1; /** * 当前页的页码 * * @var int */ var $currentPageNumber = -1; /** * 构造函数 * * 如果 $source 参数是一个 TableDataGateway 对象,则 FLEA_Helper_Pager 会调用 * 该 TDG 对象的 findCount() 和 findAll() 来确定记录总数并返回记录集。 * * 如果 $source 参数是一个字符串,则假定为 SQL 语句。这时,FLEA_Helper_Pager * 不会自动调用计算各项分页参数。必须通过 calcAllCount() 方法来设置作为分页计算 * 基础的记录总数。 * * 同时,如果 $source 参数为一个字符串,则不需要 $conditions 和 $sortby 参数。 * 而且可以通过 setDBO() 方法设置要使用的数据库访问对象。否则 FLEA_Helper_Pager * 将尝试获取一个默认的数据库访问对象。 * * @param TableDataGateway|string $source * @param int $currentPage * @param int $pageSize * @param mixed $conditions * @param string $sortby * @param int $basePageIndex * * @return FLEA_Helper_Pager */ function FLEA_Helper_Pager(& $source, $currentPage, $pageSize = 20, $conditions = null, $sortby = null, $basePageIndex = 0) { $this->_basePageIndex = $basePageIndex; $this->_currentPage = $this->currentPage = $currentPage; $this->pageSize = $pageSize; if (is_object($source)) { $this->source =& $source; $this->_conditions = $conditions; $this->_sortby = $sortby; $this->calcAllCount(); } elseif (!empty($source)) { $this->source = $source; } } /** * 设置分页索引第一页的基数 * * @param int $index */ function setBasePageIndex($index) { $this->_basePageIndex = $index; $this->currentPage = $this->_currentPage; $this->computingPage(); } /** * 设置当前页码,以便用 findAll() 获得其他页的数据 * * @param int $page */ function setPage($page) { $this->_currentPage = $page; $this->currentPage = $page; $this->computingPage(); } /** * 计算记录总数,从而更新分页参数 * */ function calcAllCount(){ if (is_object($this->source)){ $this->totalCount = $this->count = (int)$this->source->findCount($this->_conditions); $this->computingPage(); }elseif (!empty($this->source)) { $sql = "SELECT COUNT(*) FROM ( $this->source ) as _count_table"; if (is_null($this->dbo)) { $this->dbo =& FLEA::getDBO(false); } $this->totalCount = $this->count = (int)$this->dbo->getOne($sql); $this->computingPage(); } } /** * 设置数据库访问对象 * * @param FLEA_Db_Driver_Abstract $dbo */ function setDBO(& $dbo) { $this->dbo =& $dbo; } /** * 返回当前页对应的记录集 * * @param string $fields * @param boolean $queryLinks * * @return array */ function & findAll($fields = '*', $queryLinks = true) { if ($this->count == -1) { $this->count = 20; } $offset = ($this->currentPage - $this->_basePageIndex) * $this->pageSize; if (is_object($this->source)) { $limit = array($this->pageSize, $offset); $rowset = $this->source->findAll($this->_conditions, $this->_sortby, $limit, $fields, $queryLinks); } else { if (is_null($this->dbo)) { $this->dbo =& FLEA::getDBO(false); } $rs = $this->dbo->selectLimit($this->source, $this->pageSize, $offset); $rowset = $this->dbo->getAll($rs); } return $rowset; } /** * 返回分页信息,方便在模版中使用 * * @param boolean $returnPageNumbers * * @return array */ function getPagerData($returnPageNumbers = true) { $data = array( 'pageSize' => $this->pageSize, 'totalCount' => $this->totalCount, 'count' => $this->count, 'pageCount' => $this->pageCount, 'firstPage' => $this->firstPage, 'firstPageNumber' => $this->firstPageNumber, 'lastPage' => $this->lastPage, 'lastPageNumber' => $this->lastPageNumber, 'prevPage' => $this->prevPage, 'prevPageNumber' => $this->prevPageNumber, 'nextPage' => $this->nextPage, 'nextPageNumber' => $this->nextPageNumber, 'currentPage' => $this->currentPage, 'currentPageNumber' => $this->currentPageNumber, ); if ($returnPageNumbers) { $data['pagesNumber'] = array(); for ($i = 0; $i < $this->pageCount; $i++) { $data['pagesNumber'][$i] = $i + 1; } } return $data; } /** * 产生指定范围内的页面索引和页号 * * @param int $currentPage * @param int $navbarLen * * @return array */ function getNavbarIndexs($currentPage = 0, $navbarLen = 8) { $mid = intval($navbarLen / 2); if ($currentPage < $this->firstPage) { $currentPage = $this->firstPage; } if ($currentPage > $this->lastPage) { $currentPage = $this->lastPage; } $begin = $currentPage - $mid; if ($begin < $this->firstPage) { $begin = $this->firstPage; } $end = $begin + $navbarLen - 1; if ($end >= $this->lastPage) { $end = $this->lastPage; $begin = $end - $navbarLen + 1; if ($begin < $this->firstPage) { $begin = $this->firstPage; } } $data = array(); for ($i = $begin; $i <= $end; $i++) { $data[] = array('index' => $i, 'number' => ($i + 1 - $this->_basePageIndex)); } return $data; } /** * 生成一个页面选择跳转控件 * * @param string $caption * @param string $jsfunc */ function renderPageJumper($caption = '%u', $jsfunc = 'fnOnPageChanged') { $out = "<select name=\"PageJumper\" onchange=\"{$jsfunc}(this.value);\">\n"; for ($i = $this->firstPage; $i <= $this->lastPage; $i++) { $out .= "<option value=\"{$i}\""; if ($i == $this->currentPage) { $out .= " selected"; } $out .=">"; $out .= sprintf($caption, $i + 1 - $this->_basePageIndex); $out .= "</option>\n"; } $out .= "</select>\n"; echo $out; } /** * 计算各项分页参数 */ function computingPage() { $this->pageCount = ceil($this->count / $this->pageSize); $this->firstPage = $this->_basePageIndex; $this->lastPage = $this->pageCount + $this->_basePageIndex - 1; if ($this->lastPage < $this->firstPage) { $this->lastPage = $this->firstPage; } if ($this->lastPage < $this->_basePageIndex) { $this->lastPage = $this->_basePageIndex; } if ($this->currentPage >= $this->pageCount + $this->_basePageIndex) { $this->currentPage = $this->lastPage; } if ($this->currentPage < $this->_basePageIndex) { $this->currentPage = $this->firstPage; } if ($this->currentPage < $this->lastPage - 1) { $this->nextPage = $this->currentPage + 1; } else { $this->nextPage = $this->lastPage; } if ($this->currentPage > $this->_basePageIndex) { $this->prevPage = $this->currentPage - 1; } else { $this->prevPage = $this->_basePageIndex; } $this->firstPageNumber = $this->firstPage + 1 - $this->_basePageIndex; $this->lastPageNumber = $this->lastPage + 1 - $this->_basePageIndex; $this->nextPageNumber = $this->nextPage + 1 - $this->_basePageIndex; $this->prevPageNumber = $this->prevPage + 1 - $this->_basePageIndex; $this->currentPageNumber = $this->currentPage + 1 - $this->_basePageIndex; } }
<?php class Application extends FLEA_Controller_Action { /** * 后台首页 */ function actionIndex() { FLEA::loadHelper('pager'); $sql = 'select * from nodes'; $pager = & new FLEA_Helper_Pager($sql,1); $pager->calcAllCount(); // $rows = & $pager->findAll(); trace($pager); // // FLEA::loadClass('Nodes'); // $nodes = & new Nodes(); // $pager = & new FLEA_Helper_Pager($nodes,1); // trace($pager); } }
发表评论
-
ws-http 最简单轻量的PHP CURL工具库
2016-07-29 20:44 2632欢迎大家拍砖 https://github.com/to ... -
Facade 包装类 -- 解决视图里面长长的命名空间调用问题
2016-04-20 10:48 1750有时候模版里面定义 ... -
PHP单例模式面试注意事项
2015-10-20 09:57 1956最近面了不少PHP从业者,有实习生也有5/6年以上的开发者 ... -
NGINX 配置 SSL 证书 搭建 HTTPS 网站
2015-10-19 19:19 2920下面是详细的配置过程: 1、在服务器上使用 Open ... -
关于php cron任务管理的实现假想
2015-10-17 21:25 1903之前每开发一个计划任务功能均需要在线上操作crontab来新 ... -
修改一些PHP工具
2014-10-24 19:27 1804原来的代码 在非框架下是木有问题的,但是用在框架下就报错, ... -
sublime text linux上中文输入问题的终极解决方案
2014-10-13 11:07 8569我一直在使用sublime text ... -
qeephp3.0 发布了
2014-10-07 17:21 1707QeePHP 是一个快速、灵活的开发框架。应用各种成熟的架构 ... -
swiftmailer 的快捷助手 qser-mailer
2014-09-09 23:52 3595近日在对charsen的修改版上进行了再次的修改与调整,对 ... -
PHP 中简单的伪造IP刷票实现
2014-05-15 17:06 2763一般而言,我们的获取用户真实ip的代码大致是这样... / ... -
PHP5.5 htmlspecialchars 返回null的坑
2014-04-25 12:23 2616昨天在写 PDO数据库封装类的 测试代码时遇到这个问题,取 ... -
PHP 5.5 empty + 魔术变量 的坑
2014-04-16 15:53 1606今天在测试代码时遇到这么一个疑问? dump((in ... -
Aert_Log: 设计一个精简易用的日志
2014-04-13 18:28 2485日志记录对于应用的 ... -
创建一个简单的短链服务类
2013-07-01 18:20 1371整理一个简单的短链算法,整理到自己的代码库中: &l ... -
收集常用的PHP简单代码
2013-06-30 17:53 2058对于日常工作中整理出来的某些功能做个简单梳理: 1 ... -
简易PHP路由,支持正反向url解析支持
2013-06-21 22:23 8233几年前实现了一个简单的正向路由,那时候不会写反向路由解析, ... -
系统学习のCACHE 学习
2012-11-21 13:58 1910http://www.phpfans.net/article/ ... -
YY 下 sql查询封装类 不知道好不好使
2012-07-18 16:44 1335<?php class Pkg_Db_Actor { ... -
生成后台管理菜单 admin_menu 类
2012-05-05 18:27 4655<?php /** * 管理菜单 * */ ... -
抽取个sql生成器工具 -- 摘自 fuelphp1.1 版本
2012-04-25 20:17 1232<?php /** * Sql 创造者类 * ...
相关推荐
在构造函数中,根据`$source`的类型,`FLEA_Helper_Pager`会执行相应的操作。如果是`TableDataGateway`对象,它会直接计算出总记录数和当前页面的数据;如果是字符串(假设为SQL),则需要我们手动设置总记录数,...
【标题】"flea_market-master_个性化购物网站_tide1tv_presseqr_" 指的是一个基于开源项目实现的个性化购物网站系统,特别针对跳蚤市场进行了优化设计。这个项目可能结合了“tide1tv”和“presseqr”两个技术组件,...
【标题】"fleamarket_sample_kagawa-a-master.rar" 指的可能是一个开源项目或软件示例,其核心是围绕“fleamarket”(跳蚤市场或二手交易)的应用场景,可能是一个在线市场平台的代码库。"Kagawa-a-master"可能代表...
fleamarket_7.13.76.5.apk
"FleaMarket.zip" 是一个包含源代码的压缩文件,很可能是一个Android或Java项目的结构。从提供的文件列表来看,我们可以分析出这个项目的一些关键组成部分和开发环境的设置。 1. **gradlew.bat**: 这是一个批处理...
在本文中,我们将深入探讨Fleaphp框架中的常见函数,这些函数对于理解和操作数据库至关重要。Fleaphp是一个PHP开发框架,它提供了一系列方便的数据操作接口,使得开发者能够更高效地处理数据。 1. `FLEA_Db_Table...
- 使用`FLEA_Db_TableDataGateway`类简化数据库操作。 - 数据通过数组形式存储和传递,避免了每个记录封装为对象导致的性能问题。 3. **最少的配置需求** - 只需少量配置即可运行。 - 所有配置使用PHP数组存储...
【标题】"DOJO+FLEA 企业门户网站" 涉及到的技术栈主要是DOJO和FLEA,它们在构建企业级网站中扮演着重要角色。DOJO是一个开源JavaScript库,提供了丰富的UI组件和强大的数据处理功能,适用于构建富互联网应用程序。...
最近学了FLEA,觉得还行,但是资料比较少,发现很多朋友找不到FLEA的API,现在把他共享出来,供大家学习参考!
com.taobao.fleamarket最新包,用于淘宝二手android客户端应用。
这个函数用于获取数据库访问对象,返回一个`FLEA_Db_Driver_Prototype`实例。这个对象提供了统一的数据库访问接口,无论你使用的是哪种数据库系统。`$dsn`参数可以是数组或字符串,用于定义数据库连接信息。例如,...
Fleaphp框架提供了一系列工具类,比如FLEA_Helper_ImgCode帮助生成图片验证码等。这些工具类可以简化开发流程,提高开发速度。 9. 请求和响应处理: Fleaphp框架对HTTP请求和响应处理提供了清晰的接口。通过$_GET、...
5. **国际化和本地化支持**:DOJO内置了对多语言和文化环境的支持,有助于全球化的应用开发。 【FLEA组件】 FLEA可能是一个针对特定项目定制的组件或插件库,它扩展了DOJO的基础功能,以满足项目特有的需求。这可能...
您可能要讲的内容: Ruby版本系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列,缓存服务器,搜索引擎等) 部署说明...FLEAMARKET DB设计用户テーブル柱子类型选项昵称细绳null:假电子邮件细绳...
最近在做一个项目其中涉及到“无限级回复”,FLEA中中有一个关于数组的辅助类:FLEA_Helper_Array,这个类里面有一个非常强大的数组处理方法:array_to_tree,这个方法可以把二维数组转换为二叉树结构
从给定的文件信息中,我们...总而言之,Flea3系列高速VGA超紧凑型相机是针对工业视觉应用设计的,其优势在于小型轻量设计、高帧率和高分辨率的图像捕捉能力,同时兼备多种高级功能和接口选项,满足不同的工业应用需求。
您可能要讲的内容: Ruby版本系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列,缓存服务器,搜索引擎等) 部署说明...数据库设计ER図用户テーブル柱子类型选项电子邮件细绳null:false,唯一:...
数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) 部署说明 ... 用户テーブル 柱子 类型 选项 昵称 细绳 null:假 电子邮件 细绳 null:假,唯一:true 密码 细绳 null:假 ...