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的autoLoad自动加载机制
Sep 27 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
PHP输出日历表代码实例
Mar 27 PHP
php遍历CSV类实例
Apr 14 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
Oct 24 PHP
PHP session垃圾回收机制实例分析
Jun 28 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
php实现登陆模块功能示例
2016/10/20 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
python的pdb调试命令的命令整理及实例
2017/07/12 Python
python获取多线程及子线程的返回值
2017/11/15 Python
python GUI实例学习
2017/11/21 Python
python爬虫使用cookie登录详解
2017/12/27 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
python如何实现复制目录到指定目录
2020/02/13 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
用Python进行websocket接口测试
2020/10/16 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
物流管理专业大学生自荐信
2013/10/04 职场文书
教师党员自我评价范文
2015/03/04 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
element多个表单校验的实现
2021/05/27 Javascript