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数据库调用类调用实例(详细注释)
Jul 12 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
php实现简易聊天室应用代码
Sep 23 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 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中函数内引用全局变量的方法
2008/10/20 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
PHP函数超时处理方法
2016/02/14 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
jQuery动态添加
2016/04/07 Javascript
livereload工具实现前端可视化开发【推荐】
2016/12/23 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
Python中实现结构相似的函数调用方法
2015/03/10 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
Python科学画图代码分享
2017/11/29 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
python实现学生信息管理系统
2020/04/05 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
python 不以科学计数法输出的方法
2018/07/16 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
高中毕业自我鉴定
2013/12/22 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
Python Pandas 删除列操作
2022/03/16 Python
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android