Home >Backend Development >PHP Tutorial >PHP implements the function of directly modifying the table content DataGrid_PHP tutorial
Recently I wanted to make something that implements the DataGrid function through PHP, so that the contents of the tables in the database can be directly modified without developing [Add Data Page] and [Edit Page], so I searched online. , there are several similar things, both open source and paid, but they are basically based on MySQL. Since it needs to be connected to Oracle, I personally feel that phpMyDataGrid is relatively easy to get started with in terms of secondary development and page style. This article first introduces the usage based on MySQL, and then briefly introduces the secondary development of Oracle connection (based on sqlrelay).
1. Create test database and tables
<ol class="dp-c"> <li class="alt"><span><span>create database `guru`; </span></span></li> <li><span> </span></li> <li class="alt"><span>USE `guru`; </span></li> <li><span> </span></li> <li class="alt"><span>CREATE TABLE `employees` ( </span></li> <li><span> `id` int(6) NOT NULL auto_increment, </span></li> <li class="alt"> <span> `name` char(20) </span><span class="keyword">default</span><span> NULL, </span> </li> <li> <span> `lastname` char(20) </span><span class="keyword">default</span><span> NULL, </span> </li> <li class="alt"> <span> `salary` float </span><span class="keyword">default</span><span> NULL, </span> </li> <li> <span> `age` int(2) </span><span class="keyword">default</span><span> NULL, </span> </li> <li class="alt"> <span> `afiliation` </span><span class="func">date</span><span> </span><span class="keyword">default</span><span> NULL, </span> </li> <li> <span> `status` int(1) </span><span class="keyword">default</span><span> NULL, </span> </li> <li class="alt"> <span> `active` tinyint(1) </span><span class="keyword">default</span><span> NULL, </span> </li> <li> <span> `workeddays` int(2) </span><span class="keyword">default</span><span> NULL, </span> </li> <li class="alt"> <span> `photo` char(30) </span><span class="keyword">default</span><span> NULL, </span> </li> <li><span> PRIMARY KEY (`id`) </span></li> <li class="alt"><span>) </span></li> <li><span> </span></li> <li class="alt"><span>insert into `employees` </span></li> <li><span> (`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) </span></li> <li class="alt"> <span> values (1, </span><span class="string">'Ana'</span><span>, </span><span class="string">'Trujillo'</span><span>,2000,45, </span><span class="string">'2005-05-13'</span><span>,1,1,10, </span><span class="string">'1.jpg'</span><span>); </span> </li> <li><span>insert into `employees` </span></li> <li class="alt"><span> (`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) </span></li> <li> <span> values (2, </span><span class="string">'Jennifer'</span><span>, </span><span class="string">'Aniston'</span><span>,3500,23, </span><span class="string">'2004-10-22'</span><span>,1,0,0, </span><span class="string">'2.jpg'</span><span>); </span> </li> <li class="alt"><span>insert into `employees` </span></li> <li><span> (`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) </span></li> <li class="alt"> <span> values (3, </span><span class="string">'Michael'</span><span>, </span><span class="string">'Norman'</span><span>,1200,19, </span><span class="string">'2007-01-10'</span><span>,1,1,5, </span><span class="string">'3.jpg'</span><span>); </span> </li> <li><span>insert into `employees` </span></li> <li class="alt"><span> (`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) </span></li> <li> <span> values (4, </span><span class="string">'Vanessa'</span><span>, </span><span class="string">'Black'</span><span>,6500,31, </span><span class="string">'2000-11-05'</span><span>,1,1,30, </span><span class="string">'4.jpg'</span><span>); </span> </li> <li class="alt"><span>insert into `employees` </span></li> <li><span> (`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) </span></li> <li class="alt"> <span> values (5, </span><span class="string">'Michael'</span><span>, </span><span class="string">'Strauss'</span><span>,3200,45, </span><span class="string">'2006-10-21'</span><span>,2,0,22, </span><span class="string">'5.jpg'</span><span>); </span> </li> <li><span>insert into `employees` </span></li> <li class="alt"><span> (`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) </span></li> <li> <span> values (6, </span><span class="string">'William'</span><span>, </span><span class="string">'Brown'</span><span>,2300,21, </span><span class="string">'2001-03-10'</span><span>,3,1,10, </span><span class="string">'6.jpg'</span><span>); </span> </li> <li class="alt"><span>insert into `employees` </span></li> <li><span> (`id`,`name`,`lastname`,`salary`,`age`,`afiliation`,`status`,`active`,`workeddays`,`photo`) </span></li> <li class="alt"> <span> values (7, </span><span class="string">'Lucca'</span><span>, </span><span class="string">'Normany'</span><span>,2800,36, </span><span class="string">'2006-10-02'</span><span>,3,1,20, </span><span class="string">'7.jpg'</span><span>); </span> </li> </ol>
2. Introduction to PHP program
phpMyDataGrid is mainly through phpmydatagrid .class.php, dgscripts.js to implement, the total total is less than 100kB, it is a small software. I won’t go into detail about these two documents. Interested students can “pack them away” and go back to read them slowly. It mainly introduces how to use the software, that is, the example datagrid_for_mysql.php. Take a look at the page diagram first:
Program explanation:
<ol class="dp-c"> <li class="alt"><span><span><?php </span></span></span></li> <li> <span class="keyword">include</span><span> (</span><span class="string">"phpmydatagrid.class.php"</span><span>); </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span> = </span><span class="keyword">new</span><span> datagrid; </span> </li> <li> <span class="vars">$objGrid</span><span>->closeTags(true); </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->friendlyHTML(); </span> </li> <li> <span class="vars">$objGrid</span><span>->methodForm(</span><span class="string">"get"</span><span>); </span> </li> <li class="alt"> <span class="comment">//连接数据库 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->conectadb(</span><span class="string">"127.0.0.1"</span><span>, </span><span class="string">"root"</span><span>, </span><span class="string">"root"</span><span>, </span><span class="string">"guru"</span><span>);</span><span class="comment">//加密字符串 </span><span> </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->salt(</span><span class="string">"Myc0defor5tr0ng3r-Pro3EctiOn"</span><span>); </span> </li> <li> <span class="vars">$objGrid</span><span>->language(</span><span class="string">"en"</span><span>); </span> </li> <li class="alt"> <span class="comment">//最后一列显示的功能键,从左向右功能为“新增键”、“编辑键”、“删除键”、“浏览键”。 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->buttons(true,true,true,true); </span> </li> <li class="alt"> <span class="comment">//修改数值时产生的Form名称 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->form(</span><span class="string">'employee'</span><span>, true); </span> </li> <li class="alt"> <span class="comment">//可检索列名 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->searchby(</span><span class="string">"name,lastname"</span><span>); </span> </li> <li class="alt"> <span class="comment">//需要读取的表 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->tabla(</span><span class="string">"employees"</span><span>); </span> </li> <li class="alt"> <span class="comment">//索引值用于修改数据 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->keyfield(</span><span class="string">"id"</span><span>); </span> </li> <li class="alt"> <span class="comment">//分页显示行数 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->datarows(20); </span> </li> <li class="alt"> <span class="comment">//默认排序方式 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->orderby(</span><span class="string">"name"</span><span>, </span><span class="string">"ASC"</span><span>); </span> </li> <li class="alt"> <span class="comment">//显示列设置,相关设置可参考phpmydatagrid.class.php </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"id"</span><span>, </span><span class="string">"ID Employee"</span><span>, 5, 5, 1, </span><span class="string">"50"</span><span>, </span><span class="string">"center"</span><span>, </span><span class="string">"integer"</span><span>); </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"name"</span><span>, </span><span class="string">"Name"</span><span>, 30, 30, 0, </span><span class="string">"150"</span><span>, </span><span class="string">"left"</span><span>); </span> </li> <li> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"lastname"</span><span>, </span><span class="string">"Last name"</span><span>, 30, 30, 0, </span><span class="string">"150"</span><span>, </span><span class="string">"left"</span><span>); </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"age"</span><span>, </span><span class="string">"Age"</span><span>, 5, 5, 0, </span><span class="string">"50"</span><span>, </span><span class="string">"right"</span><span>);</span><span class="comment">//自定义日期格式 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"afiliation"</span><span>, </span><span class="string">"Afiliation Date"</span><span>, 10, 10, 0, </span><span class="string">"100"</span><span>, </span><span class="string">"center"</span><span>, </span><span class="string">"date:dmy:/"</span><span>);</span><span class="comment">//编辑时可以自定义为<select>模式 </select></span><span> </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"status"</span><span>, </span><span class="string">"Status"</span><span>, 5, 5, 0, </span><span class="string">"60"</span><span>, </span><span class="string">"left"</span><span>, </span><span class="string">"select:1_Single:2_Married:3_Divorced"</span><span>); </span> </li> <li> <span class="comment">//编辑时可以自定义为<checkbox>模式 </checkbox></span><span> </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"active"</span><span>, </span><span class="string">"Active"</span><span>, 2, 2, 0,</span><span class="string">"50"</span><span>, </span><span class="string">"center"</span><span>, </span><span class="string">"check:No:Yes"</span><span>);</span><span class="comment">//自定义货币显示形式 </span><span> </span> </li> <li> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"salary"</span><span>, </span><span class="string">"Salary"</span><span>, 10, 10, 0, </span><span class="string">"90"</span><span>, </span><span class="string">"right"</span><span>, </span><span class="string">"money:€"</span><span>);</span><span class="comment">//将数据以柱状图显示 </span><span> </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->FormatColumn(</span><span class="string">"workeddays"</span><span>, </span><span class="string">"Work days"</span><span>, 5, 2, 0, </span><span class="string">"50"</span><span>, </span><span class="string">"right"</span><span>, </span><span class="string">"chart:percent:val:31"</span><span>); </span> </li> <li> <span class="vars">$objGrid</span><span>->checkable(); </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->setHeader(); </span> </li> <li> <span class="vars">$objGrid</span><span>->ajax(</span><span class="string">'silent'</span><span>); </span> </li> <li class="alt"> <span class="func">echo</span><span> ' </span> </li> <li><span> <title>PHPDataGrid</title> </span></li> <li class="alt"> <span> <div> <span class="string">"center"</span><span>><br>'; </span><li> <span class="comment">//生成DataGrid </span><span> </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->grid(); </span> </li> <li> <span class="func">echo</span><span> </span><span class="string">'</span> </li> </div>'</span><span>;</span><span class="comment">//关闭数据库连接 </span><span> </span> </li> <li class="alt"> <span class="vars">$objGrid</span><span>->desconectar(); </span> </li> <li><span>?> </span></li> </ol>
3. Based on the introduction to Oracle
The main way to read Oracle is to modify the function connected to MySQL in phpmydatagrid.class.php to Oracle. This article is through sqlrelay (please refer to