DDDBL - Beispielapplikation

Übersicht

Vorwort

Bitte beachten Sie, dass dies ein Beispiel ist. Beispiele sind immer kurz gehalten und auf das wesentliche beschränkt. Diese Demonstration soll lediglich einen Einblick in die typische Art der Verwendung des DDDBLs geben. Daher wird eine typische Datenbank-Definitions-Datei, eine typische Query-Definitions-Datei, sowie ein kurzes CGI-kompatibles Programm zur Ausgabe verwendet.
Die tatsächliche Verwendung kann natürlich stark vom Beispiel abweichen.

Datenbank-Verbindung

Gegeben sei die Datei database.ddef
  [MITARBEITER]
  CONNECTION = "mysql:host=localhost;dbname=mitarbeiter"
  USER = mitarbeiter
  PASS = 3dg5e$§
  

Abfragen-Definition

Gegeben sei die Datei mitarbeiter.sdef
  [HOLE-MITARBEITER-DATEN]
  QUERY = "SELECT nr, vorname, name, gehalt FROM mitarbeiter"
  HANDLER = MULTI
  
  [HOLE-LISTE-ALLER-ABTEILUNGEN-EINES-MITARBEITERS]
  QUERY = "SELECT abteilungen.name 
          FROM   mitarbeiter
          INNER JOIN mitarbeiter_einer_abteilung ON mitarbeiter.nr = mitarbeiter_einer_abteilung.mitarbeiterid
          INNER JOIN abteilungen ON mitarbeiter_einer_abteilung.abteilungsid = abteilungen.id
          WHERE mitarbeiter.nr = ?"
  HANDLER = LIST
  
  [PRUEFE-OB-MITARBEITER-EINER-ABTEILUNG-ZUGEORDNET-IST]
  QUERY = "SELECT mitarbeiterid FROM mitarbeiter_einer_abteilung WHERE mitarbeiterid = ?"
  HANDLER = NOT_NULL
  

Das Testprogramm

Gegeben sei die Datei dddbl-beispiel.php
<?php

require_once '/var/www/html/dddbl/dddbl.php';

\DDDBL\storeDBFileContent('database.ddef');
\DDDBL\storeQueryFileContent('mitarbeiter.sdef');

// iteriere durch alle mitarbeiter
foreach(\DDDBL\get('HOLE-MITARBEITER-DATEN') AS $arrMitarbeiter) {

  print "Mitarbeiter {$arrMitarbeiter['vorname']} {$arrMitarbeiter['name']}: \n";
  print "Gehalt: {$arrMitarbeiter['gehalt']} \n";
  
  // falls mitarbeiter min. einer abteilung zugeordnet ist,
  // gebe eine liste aller zugeordneten abteilungen aus
  if(\DDDBL\get('PRUEFE-OB-MITARBEITER-EINER-ABTEILUNG-ZUGEORDNET-IST', $arrMitarbeiter['nr'])){
  
    print "Ist folgenden Abteilungen zugeordnet: \n";
    
    foreach(\DDDBL\get('HOLE-LISTE-ALLER-ABTEILUNGEN-EINES-MITARBEITERS', $arrMitarbeiter['nr']) AS $strAbteilung)
      print  "$strAbteilung\n";
  
  }
  
  print "\n";

}

Ausgabe

Der CGI-Befehl $ php dddbl-beispiel.php führt zu folgendem Ergebnis:
  Mitarbeiter Max Muster: 
  Gehalt: 2000 
  Ist folgenden Abteilungen zugeordnet: 
  Programmierung
  
  Mitarbeiter Gisela Muster: 
  Gehalt: 2100 
  Ist folgenden Abteilungen zugeordnet: 
  Marketing
  Projektmanagement
  
  Mitarbeiter Emanuel Kant: 
  Gehalt: 1000 
  Ist folgenden Abteilungen zugeordnet: 
  Marketing
  
  Mitarbeiter Michaela Muster: 
  Gehalt: 800 
  

Komplettbezug

Komplettes Paket herunterladen (986 Byte)