Login   Register  
PHP Classes
elePHPant
Icontem

File: DbProxyDemo.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Claudius Tiberiu Iacob  >  DbProxy  >  DbProxyDemo.php  >  Download  
File: DbProxyDemo.php
Role: Example script
Content type: text/plain
Description: See "HowToInstall.txt" for info
Class: DbProxy
Execute MySQL queries from SQL defined in XML
Author: By
Last change:
Date: 2010-01-13 17:49
Size: 3,900 bytes
 

Contents

Class file image Download
<?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();
?>