<?php
require_once ('domit/xml_domit_include.php'); require_once ('ParamsProxy.php'); require_once ('UTF8.php'); require_once ('DbProxy.php');
/** * Showcases the functionality of the DbProxy class. * The DbProxy class is an XML based SQL query aggregator and encoder, in one go. You place an * SQL template inside an external XML file and transparently query the database by invoking * its associated PHP method. * @author Claudius Tiberiu Iacob <claudius.iacob@gmail.com>. * @license Creative Commons Attribution Share Alike - Claudius Tiberiu Iacob 2009 */ class DbProxyDemo {
private $dbProxy;
public function __construct () { // Instantiate the proxy: $this->dbProxy = new DbProxy(); // Hook up this class to the proxy: $this->dbProxy->configure($this); // Query the database: $this->dbProxy->createDemoTable ('M', 'F'); $pageAction = trim ($_POST['action']); if ($pageAction == 'Add Employee') { $first = trim ($_POST['first_name']); $middle = trim ($_POST['middle_name']); $last = trim ($_POST['last_name']); $age = intval (trim ($_POST['age'])); $sex = trim ($_POST['sex']); $job = trim ($_POST['job']); $salary = intval (trim ($_POST['salary'])); $this->dbProxy->addEmployee ($first, $middle, $last, $age, $sex, $job, $salary); header ('Location: ' . basename (__FILE__)); // --> This clears POST data. exit(); // } $data = $this->dbProxy->getEmployees(); // Print the page to the browser: $this->makePageHeader (); $this->makeTable ($data); $this->makeForm(); }
public function __destruct () { $this->makePageFooter (); }
private function makePageHeader () { echo '<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > <head> <title>DbProxyDemo</title> </head> <body> <h2>Employees Table</h2>'; }
private function makePageFooter () { echo ' </body> </html>'; }
private function makeTable ($tableData) { $ret = ' <table border="1"> <tbody> <tr> <th>uid</th> <th>First Name</th> <th>Middle Name</th> <th>Last Name</th> <th>Age</th> <th>Sex</th> <th>Job</th> <th>Salary</th> </tr>'; if (!empty ($tableData)) { foreach ($tableData as $tableRow) { $ret .= ' <tr>'; foreach ($tableRow as $tableCell) { $ret .= ' <td>' . $tableCell . '</td>'; } $ret .= ' </tr>'; } } $ret .= ' </tbody> </table> '; echo $ret; }
private function makeForm () { echo ' <form action="" method="post"> <h2>Registration Form</h2> <fieldset> <legend>Name</legend> <p> <label> First: <input type="text" name="first_name" /> </label> <label> Middle: <input type="text" name="middle_name" /> </label> <label> Last: <input type="text" name="last_name" /> </label> </p> </fieldset> <fieldset> <legend>Profile</legend> <p> <label> Age: <input type="text" name="age" /> </label> <label> Sex: <select name="sex"> <option>M</option> <option>F</option> </select> </label> </p> </fieldset> <fieldset> <legend>Info</legend> <p> <label> Job: <input type="text" name="job" /> </label> <label> Salary: <input type="text" name="salary" /> </label> </p> </fieldset> <p> <input type="submit" name="action" value="Add Employee" /> <input type="reset" value="Reset" /> </p> </form> '; } } $dbProxyDemo = new DbProxyDemo(); ?>
|