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
Oct 09 PHP
PHP下MAIL的另一解决方案
Oct 09 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
PHP 开源AJAX框架14种
Aug 24 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
thinkphp的c方法使用示例
Feb 24 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
php运行时动态创建函数的方法
Mar 16 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 PHP
PHP封装cURL工具类与应用示例
Jul 01 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扩展ZF――Validate扩展
2008/01/10 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
js实现图片轮播效果
2015/12/19 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
json的使用小结
2016/06/08 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
写了个监控nginx进程的Python脚本
2012/05/10 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
python安装gdal的两种方法
2019/10/29 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
10个顶级Python实用库推荐
2021/03/04 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
大学生职业生涯规划书
2014/03/14 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js