From 370168684765919be5da44851060e641fd502dfc Mon Sep 17 00:00:00 2001 From: Jan Klemkow Date: Thu, 22 Nov 2012 09:19:22 +0100 Subject: Add documentation and perl/php code from niels diploma. --- .../Dateistruktur/admin/LIST/parse-exel.pl | 38 + .../Dateistruktur/admin/adminfuncs.php | 190 ++++ .../Dateistruktur/admin/edit_lesson.php | 159 +++ doc/niels-diplom/Dateistruktur/admin/get_user.php | 158 +++ .../Dateistruktur/admin/lesson_admin.php | 178 +++ doc/niels-diplom/Dateistruktur/admin/upload.php | 25 + .../Dateistruktur/admin/user_admin.php | 406 +++++++ doc/niels-diplom/Dateistruktur/connect.php | 43 + doc/niels-diplom/Dateistruktur/css/Benutzer.gif | Bin 0 -> 911 bytes doc/niels-diplom/Dateistruktur/css/HS.gif | Bin 0 -> 3781 bytes doc/niels-diplom/Dateistruktur/css/KAPV.pdf | Bin 0 -> 148887 bytes doc/niels-diplom/Dateistruktur/css/_basic.css | 121 +++ .../Dateistruktur/css/abgeschlossen.gif | Bin 0 -> 404 bytes doc/niels-diplom/Dateistruktur/css/abstract.gif | Bin 0 -> 336 bytes doc/niels-diplom/Dateistruktur/css/balken_gelb.gif | Bin 0 -> 36 bytes .../Dateistruktur/css/balken_gruen.gif | Bin 0 -> 36 bytes .../Dateistruktur/css/balken_orange.gif | Bin 0 -> 36 bytes doc/niels-diplom/Dateistruktur/css/balken_rot.gif | Bin 0 -> 36 bytes doc/niels-diplom/Dateistruktur/css/ekg.gif | Bin 0 -> 375 bytes doc/niels-diplom/Dateistruktur/css/ekg_Login.gif | Bin 0 -> 346 bytes doc/niels-diplom/Dateistruktur/css/ekg_long.gif | Bin 0 -> 345 bytes doc/niels-diplom/Dateistruktur/css/faq_logo.gif | Bin 0 -> 898 bytes doc/niels-diplom/Dateistruktur/css/head.gif | Bin 0 -> 10883 bytes doc/niels-diplom/Dateistruktur/css/inhalt.gif | Bin 0 -> 290 bytes doc/niels-diplom/Dateistruktur/css/kapv.gif | Bin 0 -> 55491 bytes doc/niels-diplom/Dateistruktur/css/nach-oben.gif | Bin 0 -> 525 bytes doc/niels-diplom/Dateistruktur/css/navigation.gif | Bin 0 -> 375 bytes doc/niels-diplom/Dateistruktur/css/oracle.gif | Bin 0 -> 1277 bytes doc/niels-diplom/Dateistruktur/css/stilneu1.css | 124 +++ doc/niels-diplom/Dateistruktur/css/user.gif | Bin 0 -> 1561 bytes doc/niels-diplom/Dateistruktur/footer.php | 9 + doc/niels-diplom/Dateistruktur/header.php | 233 ++++ doc/niels-diplom/Dateistruktur/help/ORACLE_SQL.pdf | Bin 0 -> 113739 bytes doc/niels-diplom/Dateistruktur/help/help.php | 39 + doc/niels-diplom/Dateistruktur/kapv.php | 92 ++ .../Dateistruktur/lessons/errror_tests.php | 52 + doc/niels-diplom/Dateistruktur/lessons/lessoni.php | 229 ++++ .../Dateistruktur/lessons/lessonstart.php | 183 ++++ .../Dateistruktur/lessons/showlessons.php | 163 +++ doc/niels-diplom/Dateistruktur/lessons/try.php | 1145 ++++++++++++++++++++ doc/niels-diplom/Dateistruktur/links.php | 62 ++ doc/niels-diplom/Dateistruktur/logout/bye.php | 69 ++ doc/niels-diplom/Dateistruktur/logout/save.php | 15 + doc/niels-diplom/Dateistruktur/nosession.php | 36 + doc/niels-diplom/Dateistruktur/portal/portal.php | 44 + doc/niels-diplom/Dateistruktur/praktikum.php | 121 +++ .../Dateistruktur/results/admin_result.php | 489 +++++++++ .../Dateistruktur/results/statistic.php | 211 ++++ .../Dateistruktur/results/user_result.php | 187 ++++ doc/niels-diplom/dipl.pdf | Bin 0 -> 11993386 bytes 50 files changed, 4821 insertions(+) create mode 100755 doc/niels-diplom/Dateistruktur/admin/LIST/parse-exel.pl create mode 100755 doc/niels-diplom/Dateistruktur/admin/adminfuncs.php create mode 100755 doc/niels-diplom/Dateistruktur/admin/edit_lesson.php create mode 100755 doc/niels-diplom/Dateistruktur/admin/get_user.php create mode 100755 doc/niels-diplom/Dateistruktur/admin/lesson_admin.php create mode 100755 doc/niels-diplom/Dateistruktur/admin/upload.php create mode 100755 doc/niels-diplom/Dateistruktur/admin/user_admin.php create mode 100755 doc/niels-diplom/Dateistruktur/connect.php create mode 100755 doc/niels-diplom/Dateistruktur/css/Benutzer.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/HS.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/KAPV.pdf create mode 100755 doc/niels-diplom/Dateistruktur/css/_basic.css create mode 100755 doc/niels-diplom/Dateistruktur/css/abgeschlossen.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/abstract.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/balken_gelb.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/balken_gruen.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/balken_orange.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/balken_rot.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/ekg.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/ekg_Login.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/ekg_long.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/faq_logo.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/head.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/inhalt.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/kapv.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/nach-oben.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/navigation.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/oracle.gif create mode 100755 doc/niels-diplom/Dateistruktur/css/stilneu1.css create mode 100755 doc/niels-diplom/Dateistruktur/css/user.gif create mode 100755 doc/niels-diplom/Dateistruktur/footer.php create mode 100755 doc/niels-diplom/Dateistruktur/header.php create mode 100755 doc/niels-diplom/Dateistruktur/help/ORACLE_SQL.pdf create mode 100755 doc/niels-diplom/Dateistruktur/help/help.php create mode 100755 doc/niels-diplom/Dateistruktur/kapv.php create mode 100755 doc/niels-diplom/Dateistruktur/lessons/errror_tests.php create mode 100755 doc/niels-diplom/Dateistruktur/lessons/lessoni.php create mode 100755 doc/niels-diplom/Dateistruktur/lessons/lessonstart.php create mode 100755 doc/niels-diplom/Dateistruktur/lessons/showlessons.php create mode 100755 doc/niels-diplom/Dateistruktur/lessons/try.php create mode 100755 doc/niels-diplom/Dateistruktur/links.php create mode 100755 doc/niels-diplom/Dateistruktur/logout/bye.php create mode 100755 doc/niels-diplom/Dateistruktur/logout/save.php create mode 100755 doc/niels-diplom/Dateistruktur/nosession.php create mode 100755 doc/niels-diplom/Dateistruktur/portal/portal.php create mode 100755 doc/niels-diplom/Dateistruktur/praktikum.php create mode 100755 doc/niels-diplom/Dateistruktur/results/admin_result.php create mode 100755 doc/niels-diplom/Dateistruktur/results/statistic.php create mode 100755 doc/niels-diplom/Dateistruktur/results/user_result.php create mode 100755 doc/niels-diplom/dipl.pdf (limited to 'doc/niels-diplom') diff --git a/doc/niels-diplom/Dateistruktur/admin/LIST/parse-exel.pl b/doc/niels-diplom/Dateistruktur/admin/LIST/parse-exel.pl new file mode 100755 index 0000000..1574c0d --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/admin/LIST/parse-exel.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl -w + +use strict; +use Spreadsheet::ParseExcel; + +my $oExcel = new Spreadsheet::ParseExcel; + +die "Bitte eine EXCEL-DATEI als $0 angeben!" unless @ARGV; + +my $oBook = $oExcel->Parse($ARGV[0]); +my($iR, $iC, $oWkS, $oWkC); + +#print "FILE :", $oBook->{File} , "\n"; +#print "COUNT :", $oBook->{SheetCount} , "\n"; +#print "AUTHOR:", $oBook->{Author} , "\n" + +#if defined $oBook->{Author}; + +for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) +{ + $oWkS = $oBook->{Worksheet}[$iSheet]; + #print "--------- SHEET:", $oWkS->{Name}, "\n"; + for(my $iR = $oWkS->{MinRow} ; + defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; + $iR++) + { + print ">>>"; + for(my $iC = $oWkS->{MinCol} ; + defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; + $iC++) + { + $oWkC = $oWkS->{Cells}[$iR][$iC]; + print ">", $oWkC->Value if($oWkC); + } + } +} + + diff --git a/doc/niels-diplom/Dateistruktur/admin/adminfuncs.php b/doc/niels-diplom/Dateistruktur/admin/adminfuncs.php new file mode 100755 index 0000000..e6c61b3 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/admin/adminfuncs.php @@ -0,0 +1,190 @@ + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/admin/edit_lesson.php b/doc/niels-diplom/Dateistruktur/admin/edit_lesson.php new file mode 100755 index 0000000..de1da2d --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/admin/edit_lesson.php @@ -0,0 +1,159 @@ +"; + print "KEINE ADMINSESSION..."; + print "Bitte Loggen sie sich erneut als Admin ein..."; + print ""; + include("../footer.php"); + exit; + + } + +include("adminfuncs.php"); + + +$id = $_GET['id']; + + +if (isset($_POST['delete'])) +{ + + $message = less_del($id); //Aufgabe entfernen + + ?> + + + AUFGABENVERWALTUNG + + + + + + +
" . $message . "
"; + +} + + +if (isset($_POST['new'])) +{ + + less_change($_POST['new_typ'], $_POST['new_text'], $_POST['new_aktiv'], $_POST['new_muster'], $id); //Aufgabe ändern + +} + +?> + + +AUFGABENVERWALTUNG + + + + +" method="Post"> + + + + + + + + + + + + + + + + +

Die von Ihnen gewählte Aufgabe vom Typ " . $_GET['typ'] . " hat folgende Inhalte:

\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) + { + print "\n"; + } + + print "\n"; + + $column = each($results); + $data = $column['value']; + +?> + + + + + + + + + + + + + +
$key
+
+ +
+
+ +

+ +


 

Die oben angezeigte Aufabe
+ +
 
 
 
+ + + +

  + + + + + + diff --git a/doc/niels-diplom/Dateistruktur/admin/get_user.php b/doc/niels-diplom/Dateistruktur/admin/get_user.php new file mode 100755 index 0000000..52aee37 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/admin/get_user.php @@ -0,0 +1,158 @@ +>>",$inhalt); // Zeilenweise aufsplitten... + $count = count($lines); // Anzahl der Ergebnisse bestimmen... + + for ($i = 0; $i < $count; $i++) // Inhalte in zweidimensionales Array schreiben + { + $cont = explode(">",$lines[$i]); + $countcont = count($cont); + for ($c = 0; $c < $countcont; $c++) + { + $dim[$i][$c] = $cont[$c]; // $dim enthält die Daten der Studenten + } + } + +//____________________________________________________________________________________________________________ + + + +?> + + + + + + + + + + + + + + + + + +
STUDENTENLISTE

 
+ + ".$message."
"; //Ausgabe der Fehlermeldung + } + } + } +} + +?> + +
 
+
+ +> + + + + + + + + + + + + + + + + +
In welche GRUPPE sollen die Nutzer aufgenommen werden: + +
 
 
+ + +

+ +
+ +
+ + + +

  + + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/admin/lesson_admin.php b/doc/niels-diplom/Dateistruktur/admin/lesson_admin.php new file mode 100755 index 0000000..f039943 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/admin/lesson_admin.php @@ -0,0 +1,178 @@ +"; + print "KEINE ADMINSESSION..."; + print "Bitte Loggen sie sich erneut als Admin ein..."; + print ""; + include("../footer.php"); + exit; + + } + +include("adminfuncs.php"); + + +if (isset($_POST['add'])) +{ + less_add($_POST['less_text'], $_POST['less_muster'], $_POST['less_typ'], $_POST['less_part']); //Aufgabe anlegen +} + + +if (isset($_POST['back'])) +{ + unset($find); + unset($chose_typ); + unset($_SESSION['chose_typ']); +} + +?> + + + + + + + + +AUFGABENVERWALTUNG + + + + +" method="Post"> + + + 'Vorbereitung'"; + + $stmt = dbconnect($sql); + + OCIExecute($stmt); + + + print " + + + + + + + + + + +

In der Rubrik \"$chose_typ \" sind folgende Aufgaben enthalten:

\n"; + print "\n"; + + + + print "
\n"; + print ""; + + while (OCIFetch($stmt)) { + print ""; + } + OCIFreeStatement($stmt); + + unset($_SESSION['chose_typ']); +?> + +
IDTypBeschreibung
" . OCIResult($stmt, "LESSON_ID") . "" . OCIResult($stmt, "TYP") . "" . OCIResult($stmt, "TEXT") . "
+ +
...zum Bearbeiten oder Löschen der Aufgaben klicken Sie bitte auf die ID!

+ + + + + + + +
Aufgaben finden & bearbeiten + +
AUFGABEN aus der Rubrik: + + +
+ +

+ + + + + + + +" method="Post"> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 

Anlegen neuer Aufgaben
 
AUFGABENTEXT
MUSTERLÖSUNG + +
TYPE + +
GLIEDERUNG + +
+ + + +

  + + + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/admin/upload.php b/doc/niels-diplom/Dateistruktur/admin/upload.php new file mode 100755 index 0000000..1ef34c3 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/admin/upload.php @@ -0,0 +1,25 @@ +"; +if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadFile)) +{ + print "File is valid, and was successfully uploaded. "; + print "Here's some more debugging info:\n"; + print_r($_FILES); +} +else +{ + print "Possible file upload attack! Here's some debugging info:\n"; + print_r($_FILES); +} +print ""; +?> + +

+ + Choose a file to upload: + +
diff --git a/doc/niels-diplom/Dateistruktur/admin/user_admin.php b/doc/niels-diplom/Dateistruktur/admin/user_admin.php new file mode 100755 index 0000000..01e7578 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/admin/user_admin.php @@ -0,0 +1,406 @@ +"; + print "KEINE ADMINSESSION..."; + print "Bitte Loggen sie sich erneut als Admin ein..."; + print ""; + include("../footer.php"); + exit; + + } + +include("adminfuncs.php"); + +if (isset($_POST['new_group'])) +{ + + add_group($_POST['gruppe']); //user anlegen + +} + +if (isset($_POST['add_user'])) +{ + + add_user($_POST['name'], $_POST['vorname'], $_POST['login'], $_POST['typ'], $_POST['user2group']); //user anlegen + +} + +if (isset($_POST['deakt_user'])) +{ + $message = del_user($_POST['deakt_him']); //user deaktivieren + unset($message); +} + +if (isset($_POST['akt_user'])) +{ + $message = akt_user($_POST['akt_ihn']); //user deaktivieren + unset($message); +} + +if (isset($_POST['chng_akt_group'])) +{ + $message = akt_group($_POST['all_group']); //Gruppe komplett aktivieren + unset($message); +} + +if (isset($_POST['chng_inakt_group'])) +{ + $message = inakt_group($_POST['all_group']); //Gruppe komplett deaktivieren + unset($message); +} + + +?> + + + + +NUTZERVERWALTUNG + + + + +" method="post"> + + + + + + + + + +

einzelne aktuelle Nutzer deaktivieren...
 
USER + + + +
+ + + +" method="post"> + + + + + + + + + + + + + + + + + + +
 
einzelne inaktive Nutzer aktivieren...nach Gruppen selektiert
 
GRUPPE + + inaktive Nutzer aus der Gruppe: + + + +
 
+ + + + +" method="post"> + + + + + + + + + + + + + + +
 
gesamte Gruppen aktivieren oder deaktivieren...
 
GRUPPE + + + + + +
 
+ + +" method="Post"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
Hinzufügen einzelner Nutzer zu bestehenden Gruppen
 
in welche GRUPPE einfügen? + +
NAME + +
VORNAME + +
LOGIN + +
 
TYP + + + +
 
+ + +" method="post"> + + + + + + + + +
 
Neue Gruppe anlegen...
 
Gruppenname: + + + +
+ + + + + + + + + + + + + + + + +"; + print ""; +} +elseif (isset($_POST['upload'])) +{ + print "
 
EXCEL-LISTE HOCHLADEN
 
Bitte wählen Sie eine .XLS-Datei mit den Userdaten: + +
+ +
 
Datei ist akzeptiert und wurde erfolgreich hochgeladen.
"; + print "Debugging info:
" . "Datei: " . $_FILES['userfile']['name'] . "
Typ: " . $_FILES['userfile']['type'] . "
Größe: " . $_FILES['userfile']['size'] . " Byte"; + print "
 
Zum Datenbankupload...
Datei ist fehlerhaft oder keine EXCEL-DATEI und wurde nicht hochgeladen.
"; + print "Debugging info:
" . "Datei: " . $_FILES['userfile']['name'] . "
Typ: " . $_FILES['userfile']['type'] . "
Größe: " . $_FILES['userfile']['size'] . " Byte"; +} +?> + +
+ + + + + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/connect.php b/doc/niels-diplom/Dateistruktur/connect.php new file mode 100755 index 0000000..aeb191f --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/connect.php @@ -0,0 +1,43 @@ + cursor: hand; */ + } + +#schwarzgross + { + font-size: 13pt; + color: #000000; + font-weight: 800; + } + +#schwarzklein + { + font-size: 11pt; + color: #3F3D6D; + font-weight: 600; + } + +#schwarzklein2 + { + font-size: 10pt; + color: #3F3D6D; + font-weight: 300; + } + +#weissheader + { + font-size: 24pt + color: #ffffff; + font-weight: 600; + } + +#weissgross + { + font-size: 13pt; + color: #ffffff; + font-weight: 800; + } + +#weissklein + { + font-size: 8pt; + color: #ffffff; + font-weight: 600; + } + +#weissklein2 + { + font-size: 8pt; + color: #ffffff; + font-weight: 300; + } + +#textgross + { + text-align: left; + font-size: 10pt; + color: #000000; + font-family: verdana; + font-weight: 900; + } + +#fach + { + text-align: center; + color: #000000; + font-size: 18pt; + text-transform: uppercase; + font-family: verdana; + font-weight: 900; + } + + #message + { + color: #3F3D6D; + font-size: 13pt; + font-weight: 800; + } + + #pmessage + { + background-color: #55CCBB; + } \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/css/abgeschlossen.gif b/doc/niels-diplom/Dateistruktur/css/abgeschlossen.gif new file mode 100755 index 0000000..3c5f91d Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/abgeschlossen.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/abstract.gif b/doc/niels-diplom/Dateistruktur/css/abstract.gif new file mode 100755 index 0000000..94ebdfa Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/abstract.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/balken_gelb.gif b/doc/niels-diplom/Dateistruktur/css/balken_gelb.gif new file mode 100755 index 0000000..1bba612 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/balken_gelb.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/balken_gruen.gif b/doc/niels-diplom/Dateistruktur/css/balken_gruen.gif new file mode 100755 index 0000000..f246c6e Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/balken_gruen.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/balken_orange.gif b/doc/niels-diplom/Dateistruktur/css/balken_orange.gif new file mode 100755 index 0000000..f65dfaf Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/balken_orange.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/balken_rot.gif b/doc/niels-diplom/Dateistruktur/css/balken_rot.gif new file mode 100755 index 0000000..2fc2d92 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/balken_rot.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/ekg.gif b/doc/niels-diplom/Dateistruktur/css/ekg.gif new file mode 100755 index 0000000..238619a Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/ekg.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/ekg_Login.gif b/doc/niels-diplom/Dateistruktur/css/ekg_Login.gif new file mode 100755 index 0000000..26ed432 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/ekg_Login.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/ekg_long.gif b/doc/niels-diplom/Dateistruktur/css/ekg_long.gif new file mode 100755 index 0000000..ba1ce99 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/ekg_long.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/faq_logo.gif b/doc/niels-diplom/Dateistruktur/css/faq_logo.gif new file mode 100755 index 0000000..19ebac4 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/faq_logo.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/head.gif b/doc/niels-diplom/Dateistruktur/css/head.gif new file mode 100755 index 0000000..563cb75 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/head.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/inhalt.gif b/doc/niels-diplom/Dateistruktur/css/inhalt.gif new file mode 100755 index 0000000..b03402b Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/inhalt.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/kapv.gif b/doc/niels-diplom/Dateistruktur/css/kapv.gif new file mode 100755 index 0000000..21e7f62 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/kapv.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/nach-oben.gif b/doc/niels-diplom/Dateistruktur/css/nach-oben.gif new file mode 100755 index 0000000..81b5094 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/nach-oben.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/navigation.gif b/doc/niels-diplom/Dateistruktur/css/navigation.gif new file mode 100755 index 0000000..b3a916e Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/navigation.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/oracle.gif b/doc/niels-diplom/Dateistruktur/css/oracle.gif new file mode 100755 index 0000000..9de05dc Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/oracle.gif differ diff --git a/doc/niels-diplom/Dateistruktur/css/stilneu1.css b/doc/niels-diplom/Dateistruktur/css/stilneu1.css new file mode 100755 index 0000000..868659f --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/css/stilneu1.css @@ -0,0 +1,124 @@ +BODY { + BACKGROUND-COLOR: #ffffff +} +.text { + FONT-WEIGHT: normal; + FONT-SIZE: 12px; COLOR: #000000; BORDER-TOP-STYLE: none; + FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-STYLE: none; + BORDER-LEFT-STYLE: none; LETTER-SPACING: normal; + TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none +} +.textred { + FONT-WEIGHT: normal; + FONT-SIZE: 12px; COLOR: #FA0528; BORDER-TOP-STYLE: none; + FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-STYLE: none; + BORDER-LEFT-STYLE: none; LETTER-SPACING: normal; + TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none +} +.textgross { + FONT-WEIGHT: bold; + FONT-SIZE: 42px; COLOR: #000000; BORDER-TOP-STYLE: none; + FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-STYLE: none; + BORDER-LEFT-STYLE: none; LETTER-SPACING: normal; TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none +} +.titel { + PADDING-RIGHT: 2px; PADDING-LEFT: 2px; + FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 2px; + WORD-SPACING: normal; COLOR: #ff9900; PADDING-TOP: 2px; BORDER-BOTTOM: #ff9900 1px; + FONT-FAMILY: Arial, Helvetica, sans-serif; LETTER-SPACING: 1px; TEXT-DECORATION: none +} +.titel_15 { + PADDING-RIGHT: 2px; PADDING-LEFT: 2px; + FONT-WEIGHT: bold; FONT-SIZE: 15px; PADDING-BOTTOM: 2px; + WORD-SPACING: normal; COLOR: #ff9900; PADDING-TOP: 2px; BORDER-BOTTOM: #ff9900 1px; + FONT-FAMILY: Arial, Helvetica, sans-serif; LETTER-SPACING: 1px; TEXT-DECORATION: none +} +.textfett { + FONT-WEIGHT: bold; FONT-SIZE: 11px; + COLOR: #000000; BORDER-TOP-STYLE: none; FONT-FAMILY: Arial, Helvetica, sans-serif; + BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; LETTER-SPACING: normal; + TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none +} +.link { + FONT-WEIGHT: normal; FONT-SIZE: 12px; + COLOR: #333333; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline +} +.zeile { + LINE-HEIGHT: 5px +} +UL { + FONT-WEIGHT: normal; LIST-STYLE-POSITION: outside; + FONT-SIZE: 12px; COLOR: #000000; FONT-FAMILY: Arial, Helvetica, sans-serif; + LIST-STYLE-TYPE: circle; TEXT-DECORATION: none +} +.abstractfett { + FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #ff9900; + BORDER-TOP-STYLE: none; FONT-FAMILY: Arial, Helvetica, sans-serif; + BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; LETTER-SPACING: normal; + TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none +} +.textklein { + FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #000000; BORDER-TOP-STYLE: none; + FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-RIGHT-STYLE: none; + BORDER-LEFT-STYLE: none; LETTER-SPACING: normal; TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: none +} +.rand { + border: 1px solid #666666; +} +.randmenu { + border-right: 1px solid #FF9900; +} +.randoben { + border-top: 1px solid #666666; + /*border-bottom: 1px solid #666666;*/ +} +.randunten { + border-bottom: 1px solid #666666; +} +a:link#menue { font-family:Arial, Helvetica, sans-serif; + font-size: 11px; + font-weight: bold; + color: #000000; + text-decoration: none; + width: 160px; + } +a:visited#menue { font-family: Arial, Helvetica, sans-serif; + font-size: 11px; + font-weight: bold; + color: #000000; + text-decoration: none; + width: 160px; } +a:hover#menue { font-family: Arial, Helvetica, sans-serif; + font-size: 11px; + font-weight: bold; + color: #FF9900; + text-decoration: none; + width: 160px; + border-right: 1px solid #FF9900; + } +a:active#menue { font-family: Arial, Helvetica, sans-serif; + font-size: 11px; + font-weight: bold; + color: #FF9900; + text-decoration: none; + width: 160px; } +.aktiv { + border-bottom: 1px solid #FF9900; +} +.inputtext { + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + font-weight: normal; + color: #663300; + text-decoration: none; + background-color: #FFFFFF; + border: 1px solid #FF9900; +} +.inputsubmit { + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + font-weight: bold; + color: #FFFFFF; + text-decoration: none; + background-color: #FF9900; + border: 1px solid #333333; diff --git a/doc/niels-diplom/Dateistruktur/css/user.gif b/doc/niels-diplom/Dateistruktur/css/user.gif new file mode 100755 index 0000000..3577f14 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/css/user.gif differ diff --git a/doc/niels-diplom/Dateistruktur/footer.php b/doc/niels-diplom/Dateistruktur/footer.php new file mode 100755 index 0000000..545c326 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/footer.php @@ -0,0 +1,9 @@ + + + + + + +
nach obenPraktikumsteilnehmer seit +
+ \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/header.php b/doc/niels-diplom/Dateistruktur/header.php new file mode 100755 index 0000000..4de1017 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/header.php @@ -0,0 +1,233 @@ + + + + + + + +Datenbank_Praktikum_Duesterhoeft + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ +



+ + +
Logout
 
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
   Aufgaben   
   persönliche Auswertung   
   Hilfe   
 
   links   
   Prof. Dr.-Ing. A. Düsterhöft   
 
   KAPV-Situation   
 
   Aufgabenverwaltung    +
   Auswertungen   
   Benutzerverwaltung   
 
   Statistik   
+ +
+ +
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/niels-diplom/Dateistruktur/help/ORACLE_SQL.pdf b/doc/niels-diplom/Dateistruktur/help/ORACLE_SQL.pdf new file mode 100755 index 0000000..4eee9d3 Binary files /dev/null and b/doc/niels-diplom/Dateistruktur/help/ORACLE_SQL.pdf differ diff --git a/doc/niels-diplom/Dateistruktur/help/help.php b/doc/niels-diplom/Dateistruktur/help/help.php new file mode 100755 index 0000000..5e92ae7 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/help/help.php @@ -0,0 +1,39 @@ + + + + + + + + + + +
 
Datenbanken Praktikum Prof. Dr.-Ing Düsterhöft
+ + + + + +

An dieser Stelle wird eine FAQ - Sammlung zur Arbeit mit der Seite entstehen.

Vorerst sollen hier einige Formaterläuterungen gelistet werden, die für die Abarbeitung der Aufgaben hilfreich sind! Geben folgende Inhalte bitte wie folgt in Ihren Anfragen an:
+
    +
  • Bsp. Datumsformat: ....where datum > '14-Jun-2004'
    [Jan-Feb-Mrz-Apr-Mai-Jun-Jul-Aug-Sep-Okt-Nov-Dez]
  • +
  • Bsp. String: ....where Spaltenname = 'beliebige Zeichenkette'
  • +
  • TUTORIAL ORACLE/SQL (PDF)
  • +
+
+ +

 

+
+ + +

  + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/kapv.php b/doc/niels-diplom/Dateistruktur/kapv.php new file mode 100755 index 0000000..6c4c0b1 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/kapv.php @@ -0,0 +1,92 @@ + + + + + + Situationsbeschreibung KAPV (Kunden-Auftrag-Produkt-Verwaltung) + + + + + + + + + + + + + + + + +

+Ein Unternehmen handelt mit verschiedenen Produkten. Die Verwaltung der Kunden, der Aufträge +und der Produkte soll als Client-Server-Datenbank-Applikation realisiert werden. Von den Kunden +werden Stammdaten wie Kundennummer, Name, Vorname, Geburtsdatum, Geschlecht, +Adressdaten wie PLZ, Ort, Straße und Hausnummer, Staat gehalten und müssen immer aktuell sein. +Dabei kann ein Kunde mehrere Adressen haben.

Zu jedem Kunden wird ein firmenspezifisches Profil +unterhalten, das aus mehreren Angaben besteht: bisheriges Auftragsvolumen (aufsummiert), +Zahlungsbilanz mit den Werten ‘+’ oder ‘-‘ und Zahlungsverhalten, Vorlieben, dokumentiert in +Produktkategorien, Frequenz der Bestellungen. Das Zahlungsverhalten hat die Werte: -1, falls noch +Beträge ausstehen, 0, falls mehr als 10 Mahnungen pro Jahr ausgestellt wurden, 1 sonst.
+Produktkategorien sind: Textilien, Handwerksbedarf, Sport (kann erweitert werden). Die Frequenz +der Bestellungen ist die Aufstellung Anzahl_Aufträge pro Jahr. Kunden müssen gegebenenfalls +angeschrieben werden. Bestellungen von Kunden werden nur schriftlich akzeptiert.

+Zu jeder Kundenbestellung wird ein Auftrag angelegt, bestehend aus einer Auftragsnummer, der +Kundennummer, Auftragsdatum, Auftragsbetrag und Auftragsstatus. Der Auftragsstatus hat die +Werte ‘in Arbeit’, ‘ausgeliefert’, ‘bezahlt’. Zu jedem Auftrag gehört eine Liste (Positionen) der +bestellten Produkte.
Diese Liste beinhaltet die Informationen Auftragsnummer, Produktnummer, +bestellte Stückzahl, Preis pro Stück, Betrag . Der Positionenbetrag berechnet sich aus der Stückzahl +mal Preis; der Auftragsbetrag berechnet sich aus der Summe aller Positionenbeträge zu dieser +Auftragsnummer. Zu jedem Kunden wird ein sogenanntes Kundenkonto gehalten. Darin sind alle +Auftragsbeträge mit Bestelldatum und alle eingegangenen Zahlungen zu diesen Aufträgen mit Datum +eingetragen.

Weiterhin sind pro Auftrag die Anzahl von Mahnungen festgehalten. Mahnungenwerden +21 Tage nach Rechnungsdatum ausgestellt. Die Liste der bestellten Produkte wird mit dem +Produktlager verglichen: ist das Produkt in ausreichender Stückzahl vorhanden, wird diese Position +in die Auftrags-Bestell-Liste (Positionen) aufgenommen. Sind nicht genügend viele Produkte +vorhanden, wird dies auf der Rechnung vermerkt. Ist die Bestelliste abgearbeitet und die +Positionsliste komplett, wird das Lager angewiesen, die Produkte zu verpacken. Es wird eine +Rechnung ausgestellt und zusammen mit dem Produktpaket verschickt. Eine Rechnung bezieht sich +immer auf einen Auftrag und einen Kunden und besteht aus Rechnungsdatum, Rechnungsbetrag und +Rechnungsbemerkung. Der Status des Auftrags wird geändert in ‘ausgeliefert’. Nach Eingang der +Zahlung ändert sich der Status in ‘bezahlt’.

+Das Produktlager besteht aus den folgenden Informationen: Produktnummer, Bezeichnung, +Produktionsdatum, Material, Größe, Stückzahl_auf_Lager, Preis. Nach jeder Auftragsauslieferung +muß die Lager-Stückzahl entsprechend verringert werden. Die Liste der Produkte wird immer +wieder aktualisiert. Später soll diese KAPV erweitert werden um ein Lieferantenmodul, das die +Verwaltung der Produkte mit ihren Lieferanten realisiert.

In dem untenstehenden PDFDokument ist die Datenbank noch einmal übersichtlich als Relationenmodell dargestellt. Hier noch einmal eine Übersicht über die Tabellen die Spaltennamen und die Datentypen:
+
    +
  • Tabelle ADRESSEN (ADRESS_ID[number], POSTLEITZAHL[number], ORT[varchar2], STRASSE[varchar2], HAUSNUMMER[varchar2], STAAT[varchar2])
  • +
  • Tabelle AUFTRAG (AUFTRAGSNUMMER[char 10], AUFTRAGSSTATUS[varchar2], AUFTRAGSDATUM[date], KUNDENNUMMER[char 8])
  • +
  • Tabelle AUFTRAG_HAT_POSTIONEN (PRODUKTNUMMER[char 8], STUECKZAHL[number], AUFTRAGSNUMMER[char 10])
  • +
  • Tabelle PRODUKTLAGER (PRODUKTNUMMER[number], STUECKZAHL[number], PREIS[number], BEZEICHNUNG[varchar2], PRODUKTIONSDATUM[date], MATERIAL[varchar2], GROESSE[varchar2])
  • +
  • Tabelle AUFTRAG (AUFTRAGSNUMMER[char 10], AUFTRAGSSTATUS[varchar2], AUFTRAGSDATUM[date], KUNDENNUMMER[char 8])
  • +
  • Tabelle KUNDE_HAT_ADRESSE (ADRESS_ID[number], KUNDENNUMMER[char 8]
  • +
  • Tabelle KUNDE_HAT_VORLIEBEN (KUNDENPROFIL_ID[number], VORLIEBEN_ID[number], ANZAHL[number]
  • +
  • Tabelle KUNDEN (KUNDENNUMMER[char 8], NAME[varchar2], VORNAME[varchar2], GEBURTSDATUM[date], GESCHLECHT[char 1])
  • +
  • Tabelle KUNDE_PROFIL (KUNDENPROFIL_ID[number], KUNDENNUMMER[char 8], AUFTRAGSVOLUMEN[number 10], ZAHLUNGSBILANZ [char 1], ZAHLUNGSVERHALTEN[number]
  • +
  • Tabelle ZU_VORLIEBEN_GEHOEREN_PRODUKTE (PRODUKTNUMMER[char 8], VORLIEBEN_ID[number]
  • +
  • Tabelle VORLIEBEN (VORLIEBEN_KATEGORIE[varchar2], VORLIEBEN_ID[number])
  • +
  • Tabelle RECHNUNGSDATEN (RECHNUNGSNUMMER[char], RECHNUNGSBEMERKUNG[varchar2], AUFTRAGSNUMMER[char 10], ANZAHL_VON_MAHNUNGEN[char 1], RECHNUNGSDATUM[date], EINGEGANGENE_ZAHLUNGEN[number], ZAHLUNGSDATUM[date])
  • +
DATENBANKSCHEMA (Klick zum Anzeigen der PDF-Datei): +
+
+ +

 

+ + + + + + + +

  + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/lessons/errror_tests.php b/doc/niels-diplom/Dateistruktur/lessons/errror_tests.php new file mode 100755 index 0000000..cb59e58 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/lessons/errror_tests.php @@ -0,0 +1,52 @@ +".$err['message']."\n"; + die(); +} + + +function fehler($stmt) +{ + + $username = "nils"; + $password = "nils"; + $database = "ora9"; + + $con = @OCILogon($username, $password, $database); + if (!$con) { + $e = OCIError(); // For OCILogon errors pass no parameter + PrintOCIError($e); + } + + echo "Connected OK\n"; + + $stid = @OCIParse($con, $stmt); + if (!$stid) + { + $e = OCIError($con); // For OCIParse errors pass the connection + PrintOCIError($e); + } + + echo "Parsed OK\n"; + + $r = @OCIExecute($stid); + if (!$r) + { + $e = OCIError($stid); // For OCIExecute errors pass the statement + PrintOCIError($e); + } + + echo "Executed OK\n"; +} + + + +?> diff --git a/doc/niels-diplom/Dateistruktur/lessons/lessoni.php b/doc/niels-diplom/Dateistruktur/lessons/lessoni.php new file mode 100755 index 0000000..b103a23 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/lessons/lessoni.php @@ -0,0 +1,229 @@ +"; + } + + } + + + +} + + +if (isset($_POST['submitok'])) +{ + + $_POST['query'] = correct($_POST['query']); + + //einfaches Parsen des eingegebenen Strings, damit evtl. Unbrüche und sonderzeichen den Eintrag in die DB ermöglichen + + if ($_GET['SQLtype'] == "SELECT" AND $_GET['lessNr'] <> "66") + { + $succ = select($_POST['query'], $_SESSION['user'], $muster[0], $_GET['SQLtype']); //der selectZweig (function in try.php) wird eröffnet + } + + if ($_GET['lessNr'] == "66") + { + $succ = prep_select($_POST['query'], $_SESSION['user'], $muster[0], $_GET['SQLtype'], $table, $_SESSION['name']); //der prep_selectZweig (function in try.php) wird eröffnet + } + + if ($_GET['SQLtype'] == "CREATE") + { + $succ = create($_POST['query'], $_SESSION['user'], $muster[0], $_GET['SQLtype'], $_SESSION['name']); //der createZweig (function in try.php) wird eröffnet + } + + if ($_GET['SQLtype'] == "INSERT") + { + $succ = insert($_POST['query'], $_SESSION['user'], $muster[0], $_GET['SQLtype'], $_SESSION['name']); //der insertZweig (function in try.php) wird eröffnet + } + + + success($_POST['query'], $_SESSION['user'], $_GET['lessNr']); // bei erfolgreicher Execute - Eintrag in DBTabelle 'LOGON' + + //savestatus($_SESSION['user'], $_GET['lessNr']); + //die; + + exit; + +} + + +?> + + + + + Aufgabe + + + + +

+ACHTUNG >>

Sie haben nun die Möglichkeit, in die von Ihnen angelegte Tabelle:
\"" . $table . "\" Daten einzufügen!
Die Struktur der von Ihnen angelegten Tabelle entspricht folgendem Schema:
".$struktur."

"; + } + else + { + print "ACHTUNG >>

Sie haben bisher noch keine Tabelle angelegt. Bitte lösen sie zuerst die Aufgabe 2(CREATE) der Vorbereitung...

"; +?> + + +

  + + + + +ACHTUNG >>

Sie haben bereits eine Tabelle \"" . $table . "\" angelegt!
Die Struktur der von Ihnen angelegten Tabelle entspricht folgendem Schema:
".$struktur."

Bitte lösen sie nun die Aufgabe 3(INSERT) der Vorbereitung...

"; +?> + + +

  + + + 0) + { + print "Die von Ihnen angelegte Tabelle heißt \"" . $table . "\".
Die Struktur der von Ihnen angelegten Tabelle entspricht folgendem Schema:
".$struktur."

"; + } + else + { + print "Sie haben noch keine Daten in die von Ihnen angelegte Tabelle \"" . $table . "\" eingefügt.
Die Struktur der von Ihnen angelegten Tabelle entspricht folgendem Schema:
".$struktur."

Bitte lösen sie zuerst die Aufgabe 3(INSERT) der Vorbereitung...

"; +?> + + +

  + + + + +ACHTUNG >>

Sie haben bisher noch keine Tabelle angelegt. Bitte lösen sie zuerst die Aufgabe 2(CREATE) der Vorbereitung...

"; +?> + + +

  + + + + + + +

+ + +

+ + Bitte geben Sie den SQL-Code in das Formularfeld ein und bestätigen sie mit "try"..... + +

+ +
" method="post" class="text"> + + + + + + + + + + + + +
+
SQL
+
+ + + +

  + + + + + diff --git a/doc/niels-diplom/Dateistruktur/lessons/lessonstart.php b/doc/niels-diplom/Dateistruktur/lessons/lessonstart.php new file mode 100755 index 0000000..4a95a39 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/lessons/lessonstart.php @@ -0,0 +1,183 @@ + + + + + +Aufgabenbereich + + + + +
Willkommen im Aufgabenbereich Ihres Online-Praktikums. In diesem Bereich sollen sie in zwei Schritten einige grundlegende SQL-Statements ausprobieren und können die gestellten Aufgaben bequem von zu Hause aus zu erledigen.
+

+ + Die bereits erledigten Aufgaben werden nicht mehr angezeigt.
Trotzdem haben sie die Möglichkeit, diese Aufgaben per Navigationmenü erneut aufzurufen, um so Ihren derzeitigen Stand nachvollziehen zu können. Nach erfolgreicher Erledigung jeder Aufgabe, werden Sie über das Ergebnis Ihrer Anfrage informiert und können entscheiden, ob Sie zur nächsten Aufgabe wechseln oder die Sitzung beenden wollen.
Während Ihrer Arbeit werden Ihre Datenbankzugriffe protokolliert und dem Kursleiter und Ihnen zur Verfügung gestellt. So können sie sich selbst kontrollieren und bekommen einen Nachweis über Ihre Tätigkeit. Viel Spaß und Erfolg im weiteren Verlauf des Praktikums.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
1. Vorbereitung2. Anfragen
+ + + + + + + + + + + + + + + + + + + + + + + + +
+Sehen sie sich Ihre persönliche Auswertung unter dem entsprechenden Punkt im Menü an."; + + //Falls der Nutzer noch einen Tablesspace hat - löschen... + + $check = tab_space_check(strtoupper($_SESSION['name']), $_SESSION['user']); //hat der Nutzer noch Tablespace?? + +?> +
+ Aufgabe +
+
+ + + + + + + + + + + + + + + +
+Sehen sie sich Ihre persönliche Auswertung unter dem entsprechenden Punkt im Menü an."; +?> +
Aufgabe +
+

Aufgabenstellungen im Überblick >>
+ + + + + + + + +

  + + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/lessons/showlessons.php b/doc/niels-diplom/Dateistruktur/lessons/showlessons.php new file mode 100755 index 0000000..0c0e628 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/lessons/showlessons.php @@ -0,0 +1,163 @@ + + + + +Aufgabenübersicht von + + + +
+ + + +Die nachfolgenden Aufgaben wurden erfolgreich gelöst + + + + + + + +
+ + + + + + + + + +

+ +
+ + + + + Aufgabe + + + Aufgabenstellung: + + + Die Musterlösung war: + + + Ihre Lösung war: + + + + + + + +

+ + + +Folgende Aufgaben müssen zum erfolgreichen Abschluß des Praktikums noch gelöst werden. + + + + + + + + + +

+ + + + + +
+ +
+ + + + + Aufgabe + + + Aufgabenstellung: + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/lessons/try.php b/doc/niels-diplom/Dateistruktur/lessons/try.php new file mode 100755 index 0000000..8b54d82 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/lessons/try.php @@ -0,0 +1,1145 @@ + + +
AUSWERTUNG
+ + +   + + +
Ihr SQLStatement entspricht keiner SQL__Anweisung. Bitte versuchen sie es erneut!
+ + +   + + + Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen. + + + + << zurück zur Aufgabenstellung + + + + + + + + + + + + + AUSWERTUNG + + +   + + +Sie haben eine syntaktisch richtige Anfrage erstellt. Ihre Anfrage entspricht allerdings noch nicht der in der Aufgabe geforderten Musterlösung.....

Anzahl der geforderten Spalten: $ncols_muster
Anzahl der geforderten Datensätze: $nrows_muster"; +?> + +  Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen.<< zurück zur Aufgabenstellung + + + + + + + Richtig! Die Lösung der Aufgabe entspricht der gesuchten Musterlösung. Bitte drücken sie den untenstehenden link, um zur nächsten Aufgabe zu gelangen. + + + + + + + << zurück zur Übersicht + + + zur nächsten Aufgabe >> + + + + + +Gut die Lösung kommt der Ergebnismenge schon nah. Die Elemente der Ergebnissmenge stimmen jedoch noch nicht denen in der Musterlösung überein. Überprüfen sie bitte auch die in der Frage gesuchte Reihenfolge der gesuchten Felder!!!"; +?> + +  Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen.<< zurück zur Aufgabenstellung + + + +   + + + Ihre Anfrage ergab folgende Ergebnisse: + + + + + + + 0 ) + { + print "\n"; //Ausgabe der ERgebnisse auf der Seite... + print "\n"; + while ( list( $key, $val ) = each( $results ) ) + { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) + { + reset($results); + print "\n"; + while ( $column = each($results) ) + { + $data = $column['value']; + print "\n"; + } + print "\n"; + + } + print ""; + print ""; + print ""; + print "
$key
$data[$i]

$ncols Spalten mit
$nrows Datensätzen ausgewählt
\n Ihre Anfrage war: " . $sql . "

"; + } + +else + { + print "\n"; + print ""; + print "
Es wurden keine Daten gefunden...
\n

"; + + } + + +?> + + + + + + + +
AUSWERTUNG
+ + +   + + + $typ) + { +?> +
Ihr SQLStatement entspricht keiner SQL__Anweisung. Bitte versuchen sie es erneut!
+ +
Sie fragen eine Tabelle ab, die sie nicht angelegt haben. Bitte versuchen sie es erneut!
+ + + +   + + + Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen. + + + + << zurück zur Aufgabenstellung + + + + + + + + + + + + + AUSWERTUNG + + +   + + + + + + Richtig! Die Lösung der Aufgabe entspricht der gesuchten Musterlösung. Bitte drücken sie den untenstehenden link, um zur nächsten Aufgabe zu gelangen. + + + + + + + << zurück zur Übersicht + + zur nächsten Aufgabe >> + + + + + + +   + + + Ihre Anfrage ergab folgende Ergebnisse: + + + + + + + 0 ) + { + print "\n"; //Ausgabe der ERgebnisse auf der Seite... + print "\n"; + while ( list( $key, $val ) = each( $results ) ) + { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) + { + reset($results); + print "\n"; + while ( $column = each($results) ) + { + $data = $column['value']; + print "\n"; + } + print "\n"; + + } + print ""; + print ""; + print ""; + print "
$key
$data[$i]

$ncols Spalten mit
$nrows Datensätzen ausgewählt
\n Ihre Anfrage war: " . $sql . "

"; + } + +else + { + print "\n"; + print ""; + print "
Es wurden keine Daten gefunden...
\n

"; + + } + + +?> + + + + + + + +
AUSWERTUNG
+ + +   + + + Richtig! Die Lösung der Aufgabe entspricht einer gültigen CREATE-Anweisung. Sie haben eine Ihrer Eingabe entsprechenden Tabelle angelegt. Bitte drücken sie den untenstehenden link, um zur nächsten Aufgabe zu gelangen. + + + + + << zurück zur Übersicht + + + zur nächsten Aufgabe >> + + + + + +
"; + errors($sql, $user, $_GET['lessNr']); + $e = OCIError($stmt_create); + PrintOCIError($e); // OCIFehlermeldung in Variable einlesen + } + } + + } + + else + + { +?> + +
AUSWERTUNG
+ + +   + + +
Ihr SQLStatement entspricht keiner SQL__Anweisung. Bitte versuchen sie es erneut!
+ + +   + + + Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen. + + + + << zurück zur Aufgabenstellung + + + + +
AUSWERTUNG
+ + +   + + + Richtig! Sie haben erfolgreich einen Datensatz in die von Ihnen angelegten Tabelle eingefügt. Bitte klicken sie den unten stehenden Link um zur nächsten Aufgabe zu gelangen. + + + + + + + zur nächsten Aufgabe >> + + + 0) + { + } + else + { + $sql = ereg_replace("'", "''", $sql); + + $insert = "INSERT INTO NILS.LOGON VALUES ('$id', '$lesson', sysdate, '$sql')"; + + $stmt = dbconnect($insert); + + $result = OCIExecute($stmt); + } +} + +//-------------------------------------------------------------------------------------------------------- + +function tab_space_check($name, $user) +{ + $exist = "SELECT * FROM dba_tables WHERE OWNER = 'CREATOR' AND TABLESPACE_NAME = '$name$user'"; //Löschen eines Tablespace mit dem Namen+ID des Studenten (STUDENTS.NAME+STUDENTS.STUD_ID) + $exist_tablespace = createconnect($exist); + OCIExecute($exist_tablespace); + $exists = OCIFetchStatement($exist_tablespace, $results); + + if ($exists == 1) + { + + $do = "drop tablespace $name$user including contents AND DATAFILES CASCADE CONSTRAINTS"; //Löschen eines Tablespace mit dem Namen+ID des Studenten (STUDENTS.NAME+STUDENTS.STUD_ID) + $stmt_drop_tablespace = dbconnect($do); + $dr_tbl_sp = OCIExecute($stmt_drop_tablespace); + + } +} + +//-------------------------------------------------------------------------------------------------------- + + +function errors($sql, $id, $lesson) // Eintrag in die Tabelle für die fehlerhaften Statements.. +{ + $sql = ereg_replace("'", "''", $sql); + + $insert = "INSERT INTO NILS.ERROR_LOG VALUES ('$id', '$lesson', sysdate, '$sql')"; + + $stmt = dbconnect($insert); + + $result = OCIExecute($stmt); +} + + +//-------------------------------------------------------------------------------------------------------- + + +function PrintOCIError($err) //Ausgabe der ORA-Fehlermeldungen während der Aufgaben.... +{ + ?> + + + +
AUSWERTUNG
+ + +   + + +
Ihr SQLStatement konnte nicht ausgeführt werden. ".$err['message']."\n";?> Bitte versuchen sie es erneut!
+ + +   + + + Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen. + + + << zurück zur Aufgabenstellung + + + + + + + + + + 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +$data[$nrows] = $nrows; //auf die letzte Stelle des Arrays die Anzahl der Elemente eintragen..... + +return $data; + +} + + +//-------------------------------------------------------------------------------------------------------- + + +function getlessonID($user, $part) +{ + +$sql = "SELECT tmp.LESSON_ID FROM LESSON_ORDER LO join (SELECT * FROM LESSONS L WHERE L.AKTIV=1 AND L.PART = '$part' AND L.LESSON_ID NOT IN (SELECT LOGON.LESSON_ID FROM LOGON WHERE STUD_ID = '$user')) tmp ON tmp.LESSON_ID = LO.LESSON_ID order by LO.NR"; + +//es werden alle LessonID eingelesen... + + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen... nrows = Anzahl der Elemente + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +return $data; + + +} + + +//-------------------------------------------------------------------------------------------------------- + +function getlessonNR($user, $part) +{ + +$sql = "SELECT LO.NR FROM LESSON_ORDER LO join (SELECT * FROM LESSONS L WHERE L.AKTIV=1 AND L.PART = '$part' AND L.LESSON_ID NOT IN (SELECT LOGON.LESSON_ID FROM LOGON WHERE STUD_ID = '$user')) tmp ON tmp.LESSON_ID = LO.LESSON_ID order by LO.NR"; + +//es werden alle LessonID eingelesen... + + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen... nrows = Anzahl der Elemente + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +return $data; + + +} + + +//-------------------------------------------------------------------------------------------------------- + + + +function getlessonPart($user, $part) +{ + +$sql = "SELECT tmp.PART FROM LESSON_ORDER LO join (SELECT * FROM LESSONS L WHERE L.AKTIV=1 AND L.PART = '$part' AND L.LESSON_ID NOT IN (SELECT LOGON.LESSON_ID FROM LOGON WHERE STUD_ID = '$user')) tmp ON tmp.LESSON_ID = LO.LESSON_ID order by LO.NR"; + +//zugehörige Parts einlesen (vorbereitung oder Abfragen)... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; + } + } + +return $data; + + +} + + +//-------------------------------------------------------------------------------------------------------- + + +function getText($ID) //zur Bereitstellung des Aufgabentextes +{ + +$sql = "SELECT TEXT FROM LESSONS WHERE LESSON_ID='$ID'"; //... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; + } + } + +return $data; + +} + + +//-------------------------------------------------------------------------------------------------------- + + +function getMuster($ID) //zur Bereitstellung des zur Aufgabe dazugehörigen Musters +{ + +$sql = "SELECT Muster FROM LESSONS WHERE LESSON_ID='$ID'"; //... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; + } + } + +return $data; + +} + + +//-------------------------------------------------------------------------------------------------------- + + +function savestatus($user, $lessNr) //Stand Aufgaben auf die Nummer der zuletzt bearbeiteten Aufgabe hochsetzen +{ + $update = "UPDATE students SET lesson_id = '$lessNr' where stud_id = '$user'"; + + $stmt = dbconnect($update); + + $result = OCIExecute($stmt); +} + + +//-------------------------------------------------------------------------------------------------------- + + +function correct($statement) //einfaches Parsen der Eingaben +{ + $statement = ereg_replace("\r\n", " ", $statement); //Umbrüche im String entfernen + $statement = ereg_replace(" +", " ", $statement); //mehrere Leerzeichen ersetzen + $statement = ereg_replace(";$", "", $statement); //semikolon am Ende abschneiden + $statement = ereg_replace("[ ;]$", "", $statement); //Leerzeichen + semikolon abschneiden + $statement = ereg_replace("[ +;]$", "", $statement); //mehrere Leerzeichen + semikolon + $statement = ereg_replace("[ ]$", "", $statement); //ein Leerzeichen am Ende + $statement = ereg_replace("[ +]$", "", $statement); // mehrere Leerzeichen am Ende + $statement = trim($statement); // löscht whitespace am Ende und Anfang des Strings + + $statement = strtolower($statement); //alle Zeichen der Zeichenkette werden auf Kleinbuchstaben getrimmt + + + return $statement; +} + + +//-------------------------------------------------------------------------------------------------------- + + +function getreadyMuster($ID) //Bereitstellung der bereits gelösten Aufgabenmuster +{ + +$sql = "SELECT LE.MUSTER FROM LESSONS LE, LOGON LO WHERE LO.STUD_ID = '$ID' AND LO.LESSON_ID=LE.LESSON_ID order by LO.DATUM"; //... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen... nrows = Anzahl der Elemente + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +return $data; + + +} + + + +//-------------------------------------------------------------------------------------------------------- + + +function getreadyNr($user) +{ + +$sql = "SELECT LO.NR FROM LESSON_ORDER LO join (SELECT LOGON.LESSON_ID FROM LOGON WHERE STUD_ID = '$user') tmp ON tmp.LESSON_ID = LO.LESSON_ID order by LO.NR"; //... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen... nrows = Anzahl der Elemente + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +return $data; + + +} + + + +//-------------------------------------------------------------------------------------------------------- + + + +function getreadyText($ID) //Bereitstellung der bereits gelösten Aufgabentexte +{ + +$sql = "SELECT LE.TEXT FROM LESSONS LE, LOGON LO WHERE LO.STUD_ID = '$ID' AND LO.LESSON_ID=LE.LESSON_ID order by LO.DATUM"; //... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen... nrows = Anzahl der Elemente + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +return $data; + +} + + + +//-------------------------------------------------------------------------------------------------------- + + + +function getreadystatement($ID) //Bereitstellung der bereits gelösten Studentenlösungen +{ + +$sql = "SELECT LO.STATEMENT FROM LESSONS LE, LOGON LO WHERE LO.STUD_ID = '$ID' AND LO.LESSON_ID=LE.LESSON_ID order by LO.DATUM"; //... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen... nrows = Anzahl der Elemente + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +return $data; + +} + + + + +//-------------------------------------------------------------------------------------------------------- + + +function todoText($ID) +{ + +$sql = "SELECT tmp.TEXT FROM LESSON_ORDER LO join (SELECT * FROM LESSONS L WHERE L.AKTIV=1 AND L.LESSON_ID NOT IN (SELECT LOGON.LESSON_ID FROM LOGON WHERE STUD_ID = '$ID')) tmp ON tmp.LESSON_ID = LO.LESSON_ID order by LO.NR"; //... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen... nrows = Anzahl der Elemente + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +return $data; + +} + + + +//-------------------------------------------------------------------------------------------------------- + + +function todoNr($ID) +{ + +$sql = "SELECT LO.NR FROM LESSON_ORDER LO join (SELECT * FROM LESSONS L WHERE L.AKTIV=1 AND L.LESSON_ID NOT IN (SELECT LOGON.LESSON_ID FROM LOGON WHERE STUD_ID = '$ID')) tmp ON tmp.LESSON_ID = LO.LESSON_ID order by LO.NR"; //... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen... nrows = Anzahl der Elemente + +if ( $nrows > 0 ) + { + while ( $column = each($results) ) + { + $data = $column['value']; // alle Values in ein Array übertragen.... + } + } + +return $data; + +} + +?> \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/links.php b/doc/niels-diplom/Dateistruktur/links.php new file mode 100755 index 0000000..ca5ec30 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/links.php @@ -0,0 +1,62 @@ + + + + + + Datenbanken Praktikum Prof. Dr.-Ing Düsterhöft + + + + + + + + + + + + +
+ In diesem Bereich befindet sich eine hilfreiche Linksammlung zu Seiten die das Thema der Vorlesung behandeln. Viel Spaß beim Entdecken... +
 
+ +
+ +

 

+ + + + + + + +

  + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/logout/bye.php b/doc/niels-diplom/Dateistruktur/logout/bye.php new file mode 100755 index 0000000..1a1e8f4 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/logout/bye.php @@ -0,0 +1,69 @@ + + + +Datenbank_Praktikum_Duesterhoeft + + + + + + + + + + + + + + +
+ + + + +
+
+ +
+ + + + + + + + +
Bye...
 
+ + +
+ + logout + +
+ + +
+ + + + + + + + + diff --git a/doc/niels-diplom/Dateistruktur/logout/save.php b/doc/niels-diplom/Dateistruktur/logout/save.php new file mode 100755 index 0000000..f26b293 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/logout/save.php @@ -0,0 +1,15 @@ + + diff --git a/doc/niels-diplom/Dateistruktur/nosession.php b/doc/niels-diplom/Dateistruktur/nosession.php new file mode 100755 index 0000000..6b38952 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/nosession.php @@ -0,0 +1,36 @@ + + + + + Datenbank_Praktikum_Duesterhoeft + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+ + Sie benutzen keine registrierte Session. Bitte loggen Sie sich erneut ein. In 5 Sekunden werden sie zur Startseite weitergeleitet ... +
+ +
+ + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/portal/portal.php b/doc/niels-diplom/Dateistruktur/portal/portal.php new file mode 100755 index 0000000..75df262 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/portal/portal.php @@ -0,0 +1,44 @@ + + + + +
Datenbanken-Praktikum Prof. Dr.-Ing Düsterhöft
+ + + + + + + + + + + + +
Herzlich Willkommen !

Der Datenbankkurs von Prof. Dr.-Ing. Antje Düsterhöft ist ab sofort auch im Internet verfügbar. Die Seite ist in verschiedene für Sie nützliche Bereiche unterteilt, die sie jederzeit bequem über das Navigationsmenü erreichen können.
Im Bereich "ABSTRAKT" unterhalb des Navigationsmenüs finden sie eine kurze Erläuterung der einzelnen Menüpunkte, die eingeblendet werden, wenn sie mit der Maus über den entsprechenden Punkt Menü fahren. +
Das Praktikum befindet sich momentan noch in der Testphase!! +
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
Die jetzige Version testet die Ergebnismengen der eingegebenen Statements und vergleicht diese mit der Ergebnismenge der Referenzlösung. Wichtig ist nur die richtige Reihenfolge der Ergebnisse - diese ist in der jeweiligen Aufgabenstellung dokumentiert.

Ansonsten lässt diese Version alle Lösungen mit der richtigen Ergebnismenge als richtig gelöst gelten. Beim ersten Test am Montag, dem 07.06.04 wurde die Eingabe streng mit einem Musterstring verglichen und nur kleine Abweichungen durch einen Parsingvorgang zugelassen. Ich hoffe, daß das Lösen der Aufgaben nun einfacher wird.
+ Fehlermeldungen oder Verbesserungsvorschläge bitte an Nils Weber. Viel Spaß beim Testen!! +
+ +

 

+ + + + + +

  + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/praktikum.php b/doc/niels-diplom/Dateistruktur/praktikum.php new file mode 100755 index 0000000..5a51c4b --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/praktikum.php @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + +Datenbank_Praktikum_Duesterhoeft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"; + } + + + +?> + + + + + + + + + + + + +"; + } + + + +?> + + + + + + + + + + + + + + + + + + + +"; + } + +?> + + + + + + + + + + + + +"; + } + + + +?> + + + + + + + + + + + + + + +"; + } + + +?> + + + + +
+ + + + + + + + + + + + +
+ +
+ login  + passwort  + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/results/admin_result.php b/doc/niels-diplom/Dateistruktur/results/admin_result.php new file mode 100755 index 0000000..00a6863 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/results/admin_result.php @@ -0,0 +1,489 @@ + + + +
AUSWERTUNGEN

Übersicht über alle Studenten - Klick in die Spalte Detail zeigt die Einzelauswertung der Studenten im unteren Bereich der Seite....
+ + + + + + + 0 ) + { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) + { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + $col=0; + reset($results); + print "\n"; + while ( $column = each($results) ) + { + $data = $column['value']; + + if ($col==2) + { + $percent = round($data[$i] * 100/$max); + + if ($percent <= 25) + print ""; + if ($percent > 25 and $percent < 50) + print ""; + if ($percent >= 50) + print ""; + if ($percent == 100) + print ""; + } + + else if ($col==3) + print ""; + else + print "\n"; // Name und vorname ausgeben.... + $col++; + } + print "\n"; + } + print ""; + print "
$key
  $data[$i] Aufgaben gelöst ($percent %)  $data[$i] Aufgaben gelöst ($percent %)  $data[$i] Aufgaben gelöst ($percent %)  Alle Aufgaben erfolgreich gelöst.>>$data[$i]
$nrows Studenten sind derzeit im Praktikum aktiv.

"; +} + + +$id = $_GET['ID']; + +$sql="select F_NAME, NAME from STUDENTS WHERE STUD_ID='$id'"; // Namen des STUDEnten auswählen, dessen DETaILs angezeigt werden sollen... + +$stmt = dbconnect($sql); + +OCIExecute($stmt); + +while(OCIFetch($stmt)) + { + $fname = OCIResult($stmt, "F_NAME"); + $name = OCIResult($stmt, "NAME"); + } + +?> + +

+
Übersicht über alle Studenten die fürs Praktikum aktiviert sind, jedoch noch keine Aufgabe gelöst haben....
+ + 0 ) + { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) + { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + + reset($results); + print "\n"; + while ( $column = each($results) ) + { + $data = $column['value']; + print "\n"; // Name und vorname ausgeben.... + } + print "\n"; + } + print ""; + print "
$key
$data[$i]
$nrows Studenten sind derzeit im Praktikum zugelassen ohne Aufgaben gelöst zu haben...

"; +} + +?> + +

+
 
DETAILS von :
 
Die richtigen Lösungen:
+ + 0 ) { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + reset($results); + print "\n"; + while ( $column = each($results) ) { + $data = $column['value']; + print "\n"; + } + print "\n"; + } + print "
$key
$data[$i]

"; +} else + { + if (isset($_GET['ID'])) + { + $message = "Es sind noch keine Aufgaben gelöst worden...."; + } + + print "
" . $message . "
 
Aufgaben, die bisher noch nicht bearbeitet wurden:
+ + 0 ) { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + reset($results); + print "\n"; + while ( $column = each($results) ) { + $data = $column['value']; + print "\n"; + } + print "\n"; + } + print "
$key
$data[$i]

"; +} else + { + if (isset($_GET['ID'])) + { + $message = "Es sind alle Aufgaben schon versucht worden zu lösen...."; + } + + print "
" . $message . "
 
Lösungsversuche:
 
Aufgaben, die beim ersten Versuch gelöst wurden:
+ + 0 ) { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + reset($results); + print "\n"; + while ( $column = each($results) ) { + $data = $column['value']; + print "\n"; + } + print "\n"; + } + print "
$key
$data[$i]

"; +} else + { + if (isset($_GET['ID'])) + { + $message = "Es sind noch keine Aufgaben beim ersten Versuch gelöst worden...."; + } + + print "
" . $message . "
 
Lösungsversuche pro Aufgabe:
 
+ + 0 ) { + print "\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + reset($results); + print "\n"; + while ( $column = each($results) ) { + $data = $column['value']; + print "\n"; + } + print "\n"; + } + print "
$key
$data[$i]

\n"; +} else + { + if (isset($_GET['ID'])) + { + $message = "Es sind noch keine Aufgaben gelöst worden...."; + } + + print "
" . $message . "
 
Die fehlerhaften Statements nach Aufgabe sortiert:
 
+ + 0 ) { + print "\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + reset($results); + print "\n"; + while ( $column = each($results) ) { + $data = $column['value']; + print "\n"; + } + print "\n"; + + } + print ""; + print "
$key
$data[$i]
Bisher wurden $nrows Anfragen abgesetzt.
\n"; +} else + { + if (isset($_GET['ID'])) + { + $message = "Es sind noch keine Aufgaben gelöst worden...."; + } + + print "
" . $message . "
+ + + + + + + + diff --git a/doc/niels-diplom/Dateistruktur/results/statistic.php b/doc/niels-diplom/Dateistruktur/results/statistic.php new file mode 100755 index 0000000..74e0fb8 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/results/statistic.php @@ -0,0 +1,211 @@ + + + +

STATISTIK
+ + +
+ + +
Überblick über die Lösungsversuche pro Aufgabe:
+ + + + + 0 ) + { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) + { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + $col=0; + reset($results); + print "\n"; + while ( $column = each($results) ) + { + $data = $column['value']; + + if ($col==1) + { + $percent = $data[$i] * 100/$max; //wieviel Prozent der aufgaben hat der Student gelöst + + $width = $percent * 400/100; // Darstellung per Balkendiagramm + + if ($percent <= 25) + print ""; + if ($percent > 25 and $percent < 50) + print ""; + if ($percent >= 50) + print ""; + } + + else + print "\n"; + $col++; + } + print "\n"; + } + print ""; + print "
$key
  $data[$i] Anfragen  $data[$i] Anfragen  $data[$i] Anfragen$data[$i]
Verteilung der Anzahl Anfragen nach Aufgaben.

"; + } + + +?> + +

+ + + +
 
+ + +
durchschnittlich zur Lösung benötigte Zeit in Tagen::
+ + +
 
+ + + + + 0 ) + { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) + { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) + { + $col=0; + reset($results); + print "\n"; + while ( $column = each($results) ) + { + $data = $column['value']; + + if ($col==1) + { + + $wert = (float)(ereg_replace(",", ".", $data[$i])); // umwandeln in float + $percent = $wert * 100/$tagmax; //wieviel Prozent der aufgaben hat der Student gelöst + + $width = $percent * 4; + + if ($percent >= 0 and $percent <= 25) + print ""; + if ($percent > 25 and $percent < 50) + print ""; + if ($percent >= 50) + print ""; + /*if ($percent == 0) + print ""; + if ($percent > 0 and $percent < 1) + print "";*/ + } + + else + print "\n"; // Name und vorname ausgeben.... + $col++; + } + print "\n"; + } + } +else + { + if (isset($_GET['ID'])) + { + $message = "Es sind noch keine Aufgaben gelöst worden...."; + } + + print ""; + } + +?> + + + + +
$key
  $wert Tage  $wert Tage  $wert Tage $wert Tage $wert Tage$data[$i]
" . $message . "
+ + + + + \ No newline at end of file diff --git a/doc/niels-diplom/Dateistruktur/results/user_result.php b/doc/niels-diplom/Dateistruktur/results/user_result.php new file mode 100755 index 0000000..dc09f63 --- /dev/null +++ b/doc/niels-diplom/Dateistruktur/results/user_result.php @@ -0,0 +1,187 @@ + + + + +persönliche Auswertung von + + + +
+ + + +Ihre bisher erfolgreichen Anfragen waren: + + + + + + + + + 0 ) { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + reset($results); + print "\n"; + while ( $column = each($results) ) { + $data = $column['value']; + print "\n"; + } + print "\n"; + } + + print ""; + print "
$key
$data[$i]
$nrows Datensätzen ausgewählt

"; + } + +else + { + print "\n"; + print ""; + print "
Bisher wurden noch keine Aufgaben erfolgreich gelöst...
\n

"; + + } +?> +

+ + + + +Anfrageversuche waren: + + + + + + 0 ) { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + reset($results); + print "\n"; + while ( $column = each($results) ) { + $data = $column['value']; + print "\n"; + } + print "\n"; + } + + print ""; + print "
$key
$data[$i]
$nrows Datensätzen ausgewählt

"; + } + +else + { + print "\n"; + print ""; + print "
Es wurden keine Daten gefunden...
\n

"; + + } + +?> +

+ + + + +Praktikumsdauer: + + + + + + 0 ) { + print "
\n"; + print "\n"; + while ( list( $key, $val ) = each( $results ) ) { + print "\n"; + } + print "\n"; + + for ( $i = 0; $i < $nrows; $i++ ) { + reset($results); + print "\n"; + while ( $column = each($results) ) { + $data = $column['value']; + print "\n"; + } + print "\n"; + } + print "
$key
$data[$i]
\n"; +} else { + echo "No data found
\n"; +} +print "$nrows Records Selected
\n"; + +?> + + + + + + + + + + + diff --git a/doc/niels-diplom/dipl.pdf b/doc/niels-diplom/dipl.pdf new file mode 100755 index 0000000..00b39e9 Binary files /dev/null and b/doc/niels-diplom/dipl.pdf differ -- cgit