PHP DataGrid 实现代码


Posted in PHP onAugust 12, 2009

由于需要连接Oracle所以从二次开发和页面样式来说个人觉得phpMyDataGrid还是比较好上手。本篇首先介绍基于MySQL的使用方法,再简单介绍对于Oracle连接(基于sqlrelay)的二次开发。

1. 创建测试数据库和表

create database `guru`; USE `guru`; 
CREATE TABLE `employees` ( 
`id` int(6) NOT NULL auto_increment, 
`name` char(20) default NULL, 
`lastname` char(20) default NULL, 
`salary` float default NULL, 
`age` int(2) default NULL, 
`afiliation` date default NULL, 
`status` int(1) default NULL, 
`active` tinyint(1) default NULL, 
`workeddays` int(2) default NULL, 
`photo` char(30) default NULL, 
PRIMARY KEY (`id`) 
) 
insert into `employees` 
(`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) 
values (1, 'Ana', 'Trujillo',2000,45, '2005-05-13',1,1,10, '1.jpg'); 
insert into `employees` 
(`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) 
values (2, 'Jennifer', 'Aniston',3500,23, '2004-10-22',1,0,0, '2.jpg'); 
insert into `employees` 
(`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) 
values (3, 'Michael', 'Norman',1200,19, '2007-01-10',1,1,5, '3.jpg'); 
insert into `employees` 
(`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) 
values (4, 'Vanessa', 'Black',6500,31, '2000-11-05',1,1,30, '4.jpg'); 
insert into `employees` 
(`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) 
values (5, 'Michael', 'Strauss',3200,45, '2006-10-21',2,0,22, '5.jpg'); 
insert into `employees` 
(`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) 
values (6, 'William', 'Brown',2300,21, '2001-03-10',3,1,10, '6.jpg'); 
insert into `employees` 
(`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) 
values (7, 'Lucca', 'Normany',2800,36, '2006-10-02',3,1,20, '7.jpg');

2. PHP程序介绍
phpMyDataGrid主要是通过phpmydatagrid.class.php,dgscripts.js来实现的,总共加起来不到100kB,又是一个小巧的软件。对于这两个文件就不多讲了,感兴趣的同学可以“打包带走”回去慢慢品。主要介绍该软件的使用方法,即实例datagrid_for_mysql.php。先看一下页面示意图:
PHP DataGrid 实现代码
程序讲解:
<?php 
include ("phpmydatagrid.class.php"); 
$objGrid = new datagrid; $objGrid->closeTags(true); 
$objGrid->friendlyHTML(); 
$objGrid->methodForm("get"); 
//连接数据库 
$objGrid->conectadb("127.0.0.1", "root", "root", "guru");//加密字符串 
$objGrid->salt("Myc0defor5tr0ng3r-Pro3EctiOn"); 
$objGrid->language("en"); 
//最后一列显示的功能键,从左向右功能为“新增键”、“编辑键”、“删除键”、“浏览键”。 
$objGrid->buttons(true,true,true,true); 
//修改数值时产生的Form名称 
$objGrid->form('employee', true); 
//可检索列名 
$objGrid->searchby("name,lastname"); 
//需要读取的表 
$objGrid->tabla("employees"); 
//索引值用于修改数据 
$objGrid->keyfield("id"); 
//分页显示行数 
$objGrid->datarows(20); 
//默认排序方式 
$objGrid->orderby("name", "ASC"); 
//显示列设置,相关设置可参考phpmydatagrid.class.php 
$objGrid->FormatColumn("id", "ID Employee", 5, 5, 1, "50", "center", "integer"); 
$objGrid->FormatColumn("name", "Name", 30, 30, 0, "150", "left"); 
$objGrid->FormatColumn("lastname", "Last name", 30, 30, 0, "150", "left"); 
$objGrid->FormatColumn("age", "Age", 5, 5, 0, "50", "right");//自定义日期格式 
$objGrid->FormatColumn("afiliation", "Afiliation Date", 10, 10, 0, "100", "center", "date:dmy:/");//编辑时可以自定义为<Select>模式 
$objGrid->FormatColumn("status", "Status", 5, 5, 0, "60", "left", "select:1_Single:2_Married:3_Divorced"); 
//编辑时可以自定义为<CheckBox>模式 
$objGrid->FormatColumn("active", "Active", 2, 2, 0,"50", "center", "check:No:Yes");//自定义货币显示形式 
$objGrid->FormatColumn("salary", "Salary", 10, 10, 0, "90", "right", "money:€");//将数据以柱状图显示 
$objGrid->FormatColumn("workeddays", "Work days", 5, 2, 0, "50", "right", "chart:percent:val:31"); 
$objGrid->checkable(); 
$objGrid->setHeader(); 
$objGrid->ajax('silent'); 
echo '<html> 
<head><title>PHPDataGrid</title></head> 
<body><div align="center"><br />'; 
//生成DataGrid 
$objGrid->grid(); 
echo '</div></body></html>';//关闭数据库连接 
$objGrid->desconectar(); 
?>

3. 基于Oracle简介

对于Oracle的读取主要是把phpmydatagrid.class.php中与MySQL连接的函数修改为Oracle,本篇是通过sqlrelay(可参考http://sqlrelay.sourceforge.net/)进行的Oracle连接,当然也可以使用PHP自带的OCI8模块(效率有些低),修改后另存为phporadatagrid.class.php即可在其他程序(datagrid_for_oracle.php)中调用。以上涉及的所有程序均可在压缩包中找到。
希望对大家有用!
4. 源程序下载

PHP 相关文章推荐
用PHP 快速生成 Flash 动画的方法
Mar 06 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
PHP计算加权平均数的方法
Jul 16 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 PHP
PHP 执行系统外部命令 system() exec() passthru()
Aug 11 #PHP
php empty函数 使用说明
Aug 10 #PHP
php 取得瑞年与平年的天数的代码
Aug 10 #PHP
php 生成WML页面方法详解
Aug 09 #PHP
彻底杜绝PHP的session cookie错误
Aug 09 #PHP
PHP 5.3.0 安装分析心得
Aug 07 #PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
Aug 07 #PHP
You might like
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
js查错流程归纳
2012/05/04 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
浅谈angular4生命周期钩子
2017/09/05 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
详解python while 函数及while和for的区别
2018/09/07 Python
pytorch进行上采样的种类实例
2020/02/18 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
医学院护理专业应届生求职信
2013/11/12 职场文书
教师年终个人总结
2015/02/11 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技