Location: PHPKode > scripts > DbProxy > dbproxy/DbProxyDemo.php
<?php

	require_once ('assets/domit/xml_domit_include.php');
	require_once ('assets/ParamsProxy.php');
	require_once ('assets/UTF8.php');
	require_once ('assets/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 <hide@address.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();
?>
Return current item: DbProxy