Fachhochschule Brandenburg University of Applied Sciences



Ähnliche Dokumente
php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Projekt Online-Shop:

Schiller-Gymnasium Hof

Zugriff auf Daten der Wago über eine Webseite

Hilfe zur Urlaubsplanung und Zeiterfassung

Funktionen in PHP 1/7

Anleitung OpenCms 8 Webformular Auswertung

Anleitung FlexNow als Prüfer / Stellvertreter nutzen

Datenbanksysteme SS 2007

Internationales Altkatholisches Laienforum

Grundlagen der Informatik 2

ClubWebMan Veranstaltungskalender

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Informatik 12 Datenbanken SQL-Einführung

LSF-Anleitung für Studierende

Prozedurale Datenbank- Anwendungsprogrammierung

Datenbanken für Online Untersuchungen

So richten Sie Outlook Express ein. Einrichten von Outlook Express (hier am Beispiel von Outlook Express 6) für den Empfang meiner s

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Professionelle Seminare im Bereich MS-Office

Dateneingabe über ein HTML-Formular in eine Datenbank:

Anwendungsbeispiele Buchhaltung

Programmieren 2 (Prof. Hasbargen) Klausur

SEMINAR Modifikation für die Nutzung des Community Builders

Adminer: Installationsanleitung

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

Kapitel 3 Frames Seite 1

Leitfaden #1a. "zanox Publisher-Statistik" (next generation)

«Integration in WebSite» HTML-/Javascript-Code-Beispiele

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Kurzeinführung Excel2App. Version 1.0.0

Übung 1: Ein Website News-System mit MySQL

my.green.ch... 2 Domänenübersicht... 4

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Künstliches binäres Neuron

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

desk.modul : WaWi- Export

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Prozessbeschreibung. Qualitätsberichte erstellen und vorbefüllen

HTML Teil 2. So kann man HTML-Seiten mit <div> und CSS gestalten. So sehen einfache Formulare aus

MIN oder MAX Bildung per B*Tree Index Hint

WordPress. Dokumentation

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Newsletter. 1 Erzbistum Köln Newsletter

Oracle: Abstrakte Datentypen:

Labor 3 - Datenbank mit MySQL

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Folgeanleitung für Klassenlehrer

How to do? Projekte - Zeiterfassung

BENUTZERHANDBUCH für. Inhaltsverzeichnis. 1. Anmeldung. 2. Rangliste ansehen. 3. Platzreservierung. 4. Forderungen anzeigen

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Quiz mit Google Docs erstellen

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Partnerportal Installateure Registrierung

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Web Visu Tutorial. Hipecs Web Visu. Übersicht

Verbuchung von Zahlungseingängen über das PayPal-Konto

Einführung in das redaktionelle Arbeiten mit Typo3 Schulung am 15. und

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

nessbase Projekte Über Projekte I

Handbuch zum Excel Formular Editor

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Der große VideoClip- Wettbewerb von Media Markt.

Installation und Sicherung von AdmiCash mit airbackup

PHP Einsteiger Tutorial Kapitel 4: Ein Kontaktformular in PHP Version 1.0 letzte Änderung:

Kurzanleitung OOVS. Reseller Interface. Allgemein

1 BEDIENUNGSANLEITUNG

Anleitung für die Hausverwaltung

teischl.com Software Design & Services e.u. office@teischl.com

Lavid-F.I.S. Ablaufbeschreibung für. Arbeitszeiterfassung. Lavid-F.I.S.

Variablen & erweiterte Aktionen nutzen

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Die Erinnerungsfunktion in DokuExpert.net

Bankeinzug von Beiträgen via Florix

Success! Bestellausgabe

Dissertation über MADOC veröffentlichen (10 Schritte)

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Online-Bestellung Tageskarten für Mitglieder des FC St. Pauli, die nicht im Besitz einer Dauer- oder Saisonkarte sind.

Frames oder Rahmen im Browserfenster

Der Kalender im ipad

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Business Intelligence Praktikum 1

Copyright by HMS GmbH. All rights reserved.

Anleitung zur Einrichtung eines Netzwerkes für den Gebrauch von GVService unter Windows 7

Anwenderdokumentation AccountPlus GWUPSTAT.EXE

SMS-Dienst SMS-Dienst procar informatik AG Stand: FS 04/2011 Eschenweg Weiterstadt 1

DOKUMENTATION VOGELZUCHT 2015 PLUS

Verbinden von IBM Informix mit Openoffice mittels JDBC

DOKUMENTATION ky2help V 3.6 Servertests

Formulare und Textblöcke anpassen

COSIDNS 2 ISPconfig3. Version 0.1 ( )

Kurzanleitung zur ÖEHV-Spielermeldung im System. myteam. powered by hockeydata

Worldsoft-ECMS FollowUp-Newsletter. FollowUp-Newsletter. Gruppenverwaltung. -Vorlagen erstellen

Transkript:

Fachhochschule Brandenburg University of Applied Sciences Fachbereich: Wirtschaft Studiengang: Wirtschaftsinformatik Fach: Datenbank II Dozent: Dr. Michael Höding Projektdokumentation Lehrveranstaltung Datenbanken II Wir haben uns als Projektziel gesetzt, Börsendaten in eine Datenbank einzubringen und diese am Ende über das Web auswerten zu können. Das entsprechende E-R-Modell sieht folgendermaßen aus: WKN, A_Name, U_Name Zeitpunkt, Börsenplatz WKN, Wert, Kurs-ID Aktie N 1 hat N Kurs hat 1 AG U_Name, Adresse, Ort, Größe, Tätigkeit Daraus ergibt sich folgendes relationales Schema: AG (U_Name, Adresse, Ort, Größe, Tätigkeit) 1

Aktie (WKN, A_Name, U_Name) Kurs (Kurs-ID, Wert, WKN, Zeitpunkt, Börsenplatz) Nach eingehenden Diskussionen haben wir die Stringdaten als char() Datentypen deklariert, die Zahlen als Number() und das Datum mit dem entsprechenden speziellen Datentyp Date. Daraus ergeben sich folgende Tabellen in unserer Datenbank: Tabelle ag : Name Null? Type ----------------------------------------- -------- ---------------------------- U_NAME NOT NULL CHAR(30) ADRESSE CHAR(80) ORT CHAR(20) GROESSE NUMBER(7) PLZ NUMBER(5) BRANCHE NOT NULL CHAR(20) Tabelle kurs : Name Null? Type ----------------------------------------- -------- ---------------------------- KURS_ID NOT NULL NUMBER(8) WERT NOT NULL NUMBER(9,4) WKN NUMBER(6) ZEITPUNKT DATE BOERSENPLATZ CHAR(20) Tabelle aktie : Name Null? Type ----------------------------------------- -------- ---------------------------- WKN NOT NULL NUMBER(6) A_NAME NOT NULL CHAR(30) U_NAME CHAR(30) Die Projektgruppe ist in 5 Gruppen unterteilt. Gruppe 0 Projektleitung Gruppe 1 Erfassung und Einbringen der Börsendaten in die Datenbank Gruppe 2 Aktiensuchprogramm incl. Chartdarstellung Gruppe 3 Tages hoch/tief und Verlierer/Gewinner (Tag, Woche, Monat) Gruppe 4 Verwaltung der Stammdaten Gruppe 1 - Erfassung und Einbringen der Börsendaten in die Datenbank Der Grundgedanke war die Börsenkurse des DAX-30 mittels PHP-Script zu erfassen und zur weiteren Bearbeitung in die Oracle Datenbank einzubringen. 2

Dazu soll der Börsenwert der DAX-30 Aktien ausgelesen werden von der SPIEGEL.de Seite für Börsenkurse: http://213.137.199.112/kl.php?std_id=2 Die ausgelesenen Werte dann in die Datenbank eingetragen und zwar in der Form: aktiensequenz.nextval,$p,716460,sysdate,'xetra' Der erste Wert ist die Kurs_ID, welche fortlaufend ist, da nn der eigentliche Wert, dann die WKN welche fest im Script eingetragen ist. Dann folgt das Systemdatum des DB-Servers und der Handelsplatz, hier XETRA welcher auch fest im Script eingetragen ist. <html> <head> <title> INDEX.PHP --> BOERSE </title></head> <body> <?php putenv ("ORACLE_HOME=/opt/oracle/product/8.1.7"); $connid = ocilogon("boerse","nemax50","db2.fhbrandenburg.de"); echo "<b>current status: <b>"; if ($connid > 0 ) {echo "connected to the database [boerse] <br>";; if ($connid < 1 ) {echo "not connected to the database [boerse] <br>";; Diese Teilfunktion spezifiziert den Namen der HTML-Seite, dies ist der einzigste Eintrag im HEAD Befehl. Danach folgt der Aufbau der Datenbankverbindung zu db2.fhbrandenburg.de mit den Benutzerdaten. Statusmeldungen werden bei erfolgreichen Connect sowie fehlgeschlagenen Connect ausgegeben. function readpage() { $fcontents = join('', file ('http://213.137.199.112/kl.php?std_id=2')); # $fcontents = join('', file ('spiegel.html')); return $fcontents; function readwert($wert) { global $fcontents; $muster ="<nobr>$wert</nobr>\n"; #$file = file ('http://213.137.199.112/kl.php'); #$fcontents = join ('', $file); // get a web page into a string $wpos = strpos($fcontents, "<nobr>$wert</nobr>"); $rowend = strpos($fcontents, "</tr>",$wpos); $row=substr($fcontents, $wpos, $rowend); $valpos=strpos($row," </td>"); $vbefore=substr($row,$valpos-10,10); echo "<br>"; echo "<b>$wert </b> "; if (ereg ("([0-9,]{1,7)", $vbefore, $regs)) { $preis=$regs[1]; else { echo "Invalid format: ###$vbefore###"; $preis = strtr($preis,",","."); ## return $preis ; $fcontents = readpage(); Diese Funktion liest die Spiegel.de Seite ein. Bei diesem Teil wird eine Funktion readwert deklariert, bei der für die Variable $wert angebenen Aktie der nächstliegende String mit einem Euro Zeichen gesucht wird. Mittels der PHP-Funktion strpos wird dieses realisiert. Die PHP Funktion substr gibt dann den Teil des Strings wieder, den man mit strpos ausgelesen hat und zwar in der Form Text, Start und Länge. Danach wird der ausgelesene Wert umgewandelt. Die Kommas werden durch Punkte ersetzt. Dies ist dann die eigentliche Aktion, in welcher die Funktion readwert für 3

$p = readwert('sap AG '); $sql="insert into Kurs values (aktiensequenz.nextval,$p,716460,sysdate,'xetra')"; $stmt = OCIParse($connID, $sql); OciExecute($stmt); den bestimmten Wert(hier SAP AG) aufgerufen wird und mittels SQL- Statement in die Oracle Datenbank eingebracht wird. Gruppe 2 Aktiensuchprogramm incl. Chartdarstellung In unserem Eingabeformular hat man die Möglichkeit, den Aktiennamen oder die WKN -Nummer durch ein entsprechend vordefiniertes Feld auszuwählen. Abb.1: Auswahlfeld Aktie Nachdem die gewünschte Aktie bzw. WK N gefunden wurde, hat man weiterhin die Möglichkeit, einen Zeitraum für die Abfrage anzugeben. Hier bedienten wir uns wieder der Auswahlmöglichkeit. Abb.2: Eingabeformular 4

Die Anfrage an die Datenbank wurde mittels einer Schaltfläche / eines Buttons mit dem Namen "Abschicken" realisiert. Nach Betätigen des Buttons wurden die Daten vom Anfrageformular zum Auswertungsformular übermittelt. Das Auswertungsformular stellte eine Verbindung zur der Datenbank von Oracle her. Als nächstes wird der SQL-Befehl vorbereitet und verarbeitet. Darauf werden die gefundenen Datensätze ermittelt und ausgegeben. Im letzen Schritt werden die benötigten Ressourcen freigegeben sowie die Datenbankverbindung geschlossen. Abb.3: Auswertung der Anfrage 5

In unserem Beispiel wurde die Aktie "SAP AG" ausgewählt. Der Zeitraum wurde vom 20.12.2001 bis 22.12.2001 gewählt. In der Auswertung werden der Aktienname, die WKN -Nummer, der Aktienwert, das Datum, der Unternehmensnamen und der Börsenplatz ausgegeben. Abschließend haben wir den Chartverlauf der ausgewählten Aktie dargestellt. 6

Abb.4: Chartverlauf der Aktie Gruppe 3 - Tages hoch/tief und Verlierer/Gewinner (Tag, Woche, Monat)??? Gruppe 4 - Verwaltung der Stammdaten Der Grundgedanke war, ein Webbasiertes Tool zu programmieren, mit dem man die Stammdaten der Aktien in der Datenbank verwalten kann. Dazu wird per Dropdownmenü aus der Liste, der in der Datenbank enthaltenen Aktien, eine ausgewählt und Anhand des Listeneintrags werden dann die Daten aus der Datenbank gelesen und angezeigt. Nun können die Daten verändert werden. Zu den Stammdaten gehören der Unternehmensname, die Straße, der Ort, die Größe des Unternehmens (Zahl der Beschäftigten), die PLZ und die Branche. Das Tool besteht aus 3 Komponenten Index.html - ReadOC.php (DropdownMenue mit direkter Verknüpfung zu Datenbank) 7

- InfoList.php (Formular in das die Daten eingelesen werden und editiert werden können) - SaveOC.php (Speicherung der aktualisierten Daten erfolgt hier) Index.html <html> <frameset rows="120,*,60" scrolling="no" border="0"> <frame src="readoc.php" name="upfr" noresize> <frame src="blank.php" name="mifr" noresize> <frame src="blank.php" name="dofr" noresize> </frameset> <body> </body> </html> Diese HTML Seite dient ausschließlich dazu die PHP- Skripte in in der richtigen Reihenfolge zu positionieren Das erfolgt mit Frames. ReadOC.php <?php print "<BODY bgcolor=\"#003366\">"; print "<b><basefont size=\"5\" color=\"#ffcc00\" face=\"verdana\"><u><center>verwaltung der Stammdaten</u></Center></font></b>"; putenv("oracle_home=/opt/oracle/product/8.1.7"); $connid = OCILogon("boerse","nemax50", "db2.fhbrandenburg.de"); $sql = "select U_NAME from ag"; (PHP-Skript zum Auslesen der Daten aus der Datenbank) (Beginn des PHP-Skriptes) Deklaration der Hintergrundfar be und der Überschrift (Umgebungsvriablen deklariert und SQL Statement angegeben) $stmt = OCIParse( $connid, $sql ); ($stmt); if ($error = OCIError($stmt)) { die("<b>error!!!</b><p>\n"); $anzspalten = OCINumCols($stmt); for ($i=1; $i <= $anzspalten; $i++) { OCIExecute Statement wird mit Wertten gefüllt und ausgeführt- Sollte ein Error auftreten, so wird eine Fehlermeldung ausgegeben print "<center>"; print "<form action=\"infolist.php\"target=\"mifr\">"; print "<select name=\"boersenname\" size=\"1\">"; while (OCIFetch($stmt)) { for ($i=1; $i <= $anzspalten; $i++) { print "<option selected>".ociresult( $stmt, OCIColumnName($stmt, $i))."</option>"; Hier wird das Dropdown Menü erstellt und die Daten aus der Datenbank in das Menü geladen. 8

print "</select>"; print "<input type=\"submit\" value=\" Absenden \">"; print "</form>"; print "</center>"; print </BODY> ;?> (Ende der Php-Skriptes) InfoList.php (PHP-Skript zum Editieren der Ausgelesenen Daten über ein Formular) <? (Beginn des PHP-Skriptes) print "<body bgcolor=\"#003366\">"; putenv ("ORACLE_HOME=/opt/oracle/product/8.1.7"); $connid = OCILogon("boerse","nemax50", "db2.fhbrandenburg.de"); if ($connid > 0) { print "<basefont size=\"1\" color=\"#ffcc00\" face=\"verdana\">status : Connected to Database </font> <P>\n";; $sql = "select * from ag where U_Name LIKE '$BoersenName'"; $stmt = OCIParse( $connid, $sql); OCIExecute ($stmt); if ($error = OCIError($stmt)) { die("<b>error!!!</b><p>\n"); while (OCIFetch($stmt)) { $plz = OCIResult($stmt,"PLZ"); $ort = OCIResult($stmt,"ORT"); $gro = OCIResult($stmt,"GROESSE"); $bra = OCIResult($stmt,"BRANCHE"); $adr = OCIResult($stmt,"ADRESSE"); print "<center>"; print "<form action=\"saveoc.php\" target=\"mifr\">"; print "<table border=\"0\">"; face=\"verdana\"><b>unternehmensname:</b></font></td>"; (Umgebungsvriablen deklariert und SQL Statement angegeben) $BoersenName ist die Trägervariable von ReadOC.php (übermittelt den U_Namen) Statement wird mit Werten gefüllt und ausgeführt- Sollte ein Error auftreten, so wird eine Fehlermeldung ausgegeben Das SQL Staement wird benutzt um die zum $BoersenNamen gehörenden Komponenten auszulesen (PLZ, ORT, GROESSE, BRANCHE, ADRESSE) Formularteil: Die Daten werden in die dafür vorgesehen Textboxen eingelesen um dann editiert werden zu können. Wenn man dann auf den Button klickt werden die Daten in der Datenbank geupdatet. 9

print "<td><center><input type=\"text\" name=\"una\" value=\"$boersenname\"></center></td>"; face=\"verdana\"><b>adresse:</b></font> </td>"; print "<td><input type=text name=adr value=\"$adr\"></td>"; face=\"verdana\"><b>ort:</b></font></td>"; print "<td><input type=text name=ort value=\"$ort\"></td>"; face=\"verdana\"><b>groesse:</b></font></td>"; print "<td><input type=text name=gro value=\"$gro\"></td>"; face=\"verdana\"><b>plz:</b></font></td>"; print "<td><input type=text name=plz value=\"$plz\"></td>"; face=\"verdana\"><b>branche:</b></font> </td>"; print "<td><input type=text name=bra value=\"$bra\"></td>"; print "<td><align=\"center\"><input type=submit value=\"abschicken\"></td>"; print "</table>"; print "</font>"; print "</form>"; 10

print "</center>"; print "</body>";?> (Ende des PHP-Skriptes) SaveOC.php (PHP-Skript zum Updaten der Editierten Daten) <? Beginn der Php-Skriptes print "<body bgcolor=\"#003366\">"; putenv ("ORACLE_HOME=/opt/oracle/product/8.1.7"); $connid = OCILogon("boerse","nemax50", "db2.fhbrandenburg.de"); (Umgebungsvriablen deklariert und SQL Statement angegeben) Hier wird auch die Update-Statement initialisiert. Die im nächsten Schritt durchgeführt wird. $sql = "UPDATE AG SET PLZ = '$plz', U_Name = '$una', BRANCHE = '$bra', GROESSE = '$gro', ORT = '$ort', ADRESSE = '$adr' WHERE U_Name LIKE '$una'"; $stmt = OCIParse($connID, $sql); OCIExecute ($stmt); if ($error = OCIError($stmt)) { die("<b>error!!!</b><p>\n"); print "<basefont size=\"2\" color=\"#ffcc00\" face=\"verdana\"><center>datenbestand erfolgreich aktualisiert</center></font><p>\n"; Statement wird mit Werten gefüllt (connid und SQL - Statement) und ausgeführt- Sollte ein Error auftreten, so wird eine Fehlermeldung ausgegeben Ausgabe : Wenn erfolgreich aktualisiert wurde print "</body>"?> Ende der Php-Skriptes 11