summaryrefslogtreecommitdiff
path: root/doc/niels-diplom/Dateistruktur/lessons/try.php
diff options
context:
space:
mode:
authorJan Klemkow <j.klemkow@wemelug.de>2012-11-22 09:19:22 +0100
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2013-01-24 12:30:09 +0100
commit370168684765919be5da44851060e641fd502dfc (patch)
tree71dd4aea9fb3679921d3f0f7a52615f871718982 /doc/niels-diplom/Dateistruktur/lessons/try.php
parentbde079b899066bec3b89b3ac659bec00a73afe8c (diff)
downloadsqltutor-plugin-370168684765919be5da44851060e641fd502dfc.tar.gz
sqltutor-plugin-370168684765919be5da44851060e641fd502dfc.tar.bz2
sqltutor-plugin-370168684765919be5da44851060e641fd502dfc.zip
Add documentation and perl/php code from niels diploma.
Diffstat (limited to 'doc/niels-diplom/Dateistruktur/lessons/try.php')
-rwxr-xr-xdoc/niels-diplom/Dateistruktur/lessons/try.php1145
1 files changed, 1145 insertions, 0 deletions
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 @@
+<?php
+
+function select($sql, $user, $muster, $typ)
+
+{
+ $_SESSION['statment'] = $sql; // für die erneute Darstellung der Anfrage im Textfeld beim Navigieren zur eben gelösten Aufgabe...
+
+
+ $stmt = dbconnect($sql);
+
+
+ if ( OCIStatementType($stmt) == $typ ) //wenn die Eingabe ein select statement ist...
+
+ {
+
+ //...testen ob das eine sinnvolle SQL-Anweisung ist oder ggf. Fehler ausgeben...
+
+ $r = @OCIExecute($stmt);
+
+ if (!$r)
+ {
+ errors($sql, $user, $_GET['lessNr']);
+ $e = OCIError($stmt); // OCIFehlermeldung in Variable einlesen
+ PrintOCIError($e); // und ausgeben
+ }
+
+ }
+
+ else
+
+ {
+
+?>
+ <tr>
+ <td><div class=titel>AUSWERTUNG</div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td bgcolor=#FE5555 colspan=2><div class=text>Ihr SQLStatement entspricht keiner SQL_<? print $typ; ?>_Anweisung. Bitte versuchen sie es erneut!</div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=2 class=text>Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen.</td>
+ </tr>
+
+ <tr>
+ <td align="left" bgcolor="#F7F7F7" ><a href="/dipl/lessons/lessoni.php?lessNr=<?=$_GET['lessNr']?>&SQLtype=<?=$_GET['SQLtype']?>&Part=<?=$_GET['Part']?>&<?=SID?>" id="menue"><< zurück zur Aufgabenstellung </a>
+ </td>
+ </tr>
+<?
+ exit; //....Ausgabe, daß ein ungültiges Statement vorliegt & Abbruch.....
+ }
+
+?>
+
+
+
+
+
+
+
+
+ <tr>
+ <td class=titel>AUSWERTUNG</td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+<? //Erstellen der Musterlösung zum Vergleich der Ergebnissmenge
+
+ $sql_muster = getmuster($_GET['lessNr']); // Musterlösung als String aus der DB holen
+ $stmt_muster = dbconnect($sql_muster[0]);
+ OCIExecute($stmt_muster);
+
+
+ $nrows_muster = OCIFetchStatement($stmt_muster, $results_muster); //nrows = Anzahl der Elemente
+ $ncols_muster = OCInumcols($stmt_muster);
+
+
+
+ $nrows = OCIFetchStatement($stmt, $results); //Umfang der Eingabeergebnisse der Eingabe ermitteln
+ $ncols = OCInumcols($stmt);
+
+
+ if ($nrows_muster != $nrows or $ncols_muster != $ncols)
+ {
+ errors($sql, $user, $_GET['lessNr']);
+
+ print "<tr><td bgcolor=#FFB24A class=text>Sie haben eine syntaktisch richtige Anfrage erstellt. Ihre Anfrage entspricht allerdings noch nicht der in der Aufgabe geforderten Musterlösung.....<br><br>Anzahl der geforderten Spalten: $ncols_muster<br>Anzahl der geforderten Datensätze: $nrows_muster</td></tr>";
+?>
+
+ <tr><td>&nbsp;</td></tr><tr><td colspan=2 class=text>Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen.</td></tr><tr><td align="left" bgcolor="#F7F7F7" ><a href="/dipl/lessons/lessoni.php?lessNr=<?=$_GET['lessNr']?>&SQLtype=<?=$_GET['SQLtype']?>&Part=<?=$_GET['Part']?>&<?=SID?>" id="menue"><< zurück zur Aufgabenstellung </a>
+
+ </td>
+ </tr>
+<?
+ }
+
+ else
+ {
+ $OK = 0;
+ $differ = 0;
+
+ while ($column = each($results) and $column_muster = each($results_muster))
+ {
+ $data_muster = $column_muster['value'];
+ $data = $column['value']; // alle Values in ein Array übertragen....
+
+ for ( $i = 0; $i < $nrows; $i++ ) // Vergleich der Ergebnisse von Muster und Eingabe
+ {
+
+ if ($data_muster[$i] == $data[$i])
+ {
+ $OK = $OK + 1;
+ }
+
+ else $differ = $differ + 1;
+ }
+ }
+
+ if ($differ == 0)
+ {
+ unset($_SESSION['statment']); //bei richtiger Antwort wird die vorangegangene Lösung nicht mehr im Eingabefeld der nächsten Aufgabe angezeigt
+?>
+
+ <tr>
+ <td colspan=2 class=text>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.</td>
+ </tr>
+
+ <tr>
+ <td align="left" bgcolor="#F7F7F7">
+
+<?
+
+ $lessontype = getlessontype($_SESSION['user'], $_GET['Part']); //die nachfolgende Aufgaben_ID & Typ bestimmen...
+ $lessonID = getlessonID($_SESSION['user'], $_GET['Part']);
+ $lessonPart = getlessonPart($_SESSION['user'], $_GET['Part']);
+ $lessonNr = getlessonNR($_SESSION['user'], $_GET['Part']);
+
+
+ if ($lessonID[1] == 0)
+ {
+?>
+ <a href="/dipl/lessons/lessonstart.php?<?=SID?>" id="menue" ><< zurück zur Übersicht</a>
+
+<?
+ }
+ else
+ {
+
+
+?>
+ <a href="/dipl/lessons/lessoni.php?lessNr=<?=$lessonID[1]?>&Nr=<?=$lessonNr[1]?>&SQLtype=<?=$lessontype[1]?>&Part=<?=$lessonPart[1]?>&<?=SID?>" id="menue" >zur nächsten Aufgabe >></a>
+<?
+
+ }
+
+?>
+
+ </td>
+ </tr>
+
+<?
+ }
+
+else
+ {
+ print "<tr><td bgcolor=#FDE264 class=text>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!!!</td></tr>";
+?>
+
+ <tr><td>&nbsp;</td></tr><tr><td colspan=2 class=text>Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen.</td></tr><tr><td align="left" bgcolor="#F7F7F7" ><a href="/dipl/lessons/lessoni.php?lessNr=<?=$_GET['lessNr']?>&SQLtype=<?=$_GET['SQLtype']?>&Part=<?=$_GET['Part']?>&<?=SID?>" id="menue"><< zurück zur Aufgabenstellung </a></td></tr>
+
+<?
+ }
+ }
+
+?>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=2 class=text>Ihre Anfrage ergab folgende Ergebnisse:</td>
+ </tr>
+
+ <tr>
+
+
+
+<?
+
+// Ausgabe der Ergebnisse bei falschen Ergebnismengen
+
+$stmt = dbconnect($sql);
+
+@OCIExecute($stmt);
+
+$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen...
+
+
+if ( $nrows > 0 )
+ {
+ print "<TABLE BORDER=\"1\">\n"; //Ausgabe der ERgebnisse auf der Seite...
+ print "<TR>\n";
+ while ( list( $key, $val ) = each( $results ) )
+ {
+ print "<TH>$key</TH>\n";
+ }
+ print "</TR>\n";
+
+ for ( $i = 0; $i < $nrows; $i++ )
+ {
+ reset($results);
+ print "<TR>\n";
+ while ( $column = each($results) )
+ {
+ $data = $column['value'];
+ print "<TD>$data[$i]</TD>\n";
+ }
+ print "</TR>\n";
+
+ }
+ print "<tr><td colspan=$ncols class=text><br>$ncols Spalten mit<BR></td></tr>";
+ print "<tr><td colspan=$ncols class=text>$nrows Datensätzen ausgewählt<BR></td></tr>";
+ print "<tr><td colspan=$ncols class=text>\n Ihre Anfrage war: " . $sql . "</td></tr>";
+ print "</TABLE><BR>";
+ }
+
+else
+ {
+ print "<TABLE BORDER=\"1\">\n";
+ print "<tr><td class=text>Es wurden keine Daten gefunden...<BR>\n</td></tr>";
+ print "</TABLE><BR>";
+
+ }
+
+
+?>
+
+</tr>
+</table>
+</table>
+
+<?
+
+ include("../footer.php");
+
+ if ($nrows_muster != $nrows or $ncols_muster != $ncols or $differ != 0)
+ {
+ exit; //Abbruch um hochsetzen des Aufgabenstandes zu verhindern...
+ }
+
+
+
+}
+
+
+//--------------------------------------------------------------------------------------------------------
+
+
+function prep_select($sql, $user, $muster, $typ, $table,$name)
+
+{
+ $_SESSION['statment'] = $sql; // für die erneute Darstellung der Anfrage im Textfeld beim Navigieren zur eben gelösten Aufgabe...
+
+ $muster_string = getmuster($_GET['lessNr']);
+
+ $compare = correct($muster_string[0] . $table); //...test ob die selbstangelegte Tabelle angefragt wird...
+
+
+
+ $stmt = createconnect($sql);
+
+
+ if ( OCIStatementType($stmt) == $typ and $sql == $compare ) //wenn die Eingabe ein select statement ist...
+
+ {
+
+ $r = @OCIExecute($stmt);
+
+ if (!$r)
+ {
+ errors($sql, $user, $_GET['lessNr']);
+ $e = OCIError($stmt); // OCIFehlermeldung in Variable einlesen
+ PrintOCIError($e); // und ausgeben
+ }
+
+ }
+
+ else
+
+ {
+
+?>
+ <tr>
+ <td><div class=titel>AUSWERTUNG</div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+<? if (OCIStatementType($stmt) <> $typ)
+ {
+?>
+ <td bgcolor=#FE5555 colspan=2><div class=text>Ihr SQLStatement entspricht keiner SQL_<? print $typ; ?>_Anweisung. Bitte versuchen sie es erneut!</div></td>
+<? }
+ else
+ {
+?>
+ <td bgcolor=#FE5555 colspan=2><div class=text>Sie fragen eine Tabelle ab, die sie nicht angelegt haben. Bitte versuchen sie es erneut!</div></td>
+<?
+ }
+?>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=2 class=text>Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen.</td>
+ </tr>
+
+ <tr>
+ <td align="left" bgcolor="#F7F7F7" ><a href="/dipl/lessons/lessoni.php?lessNr=<?=$_GET['lessNr']?>&SQLtype=<?=$_GET['SQLtype']?>&Part=<?=$_GET['Part']?>&<?=SID?>" id="menue"><< zurück zur Aufgabenstellung </a>
+ </td>
+ </tr>
+<?
+ exit; //....Ausgabe, daß ein ungültiges Statement vorliegt & Abbruch.....
+ }
+
+?>
+
+
+
+
+
+
+
+
+ <tr>
+ <td class=titel>AUSWERTUNG</td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+
+<?
+ unset($_SESSION['statment']); //bei richtiger Antwort wird die vorangegangene Lösung nicht mehr im Eingabefeld der nächsten Aufgabe angezeigt
+?>
+
+ <tr>
+ <td colspan=2 class=text>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.</td>
+ </tr>
+
+ <tr>
+ <td align="left" bgcolor="#F7F7F7">
+
+<?
+
+ $lessontype = getlessontype($_SESSION['user'], $_GET['Part']); //die nachfolgende Aufgaben_ID & Typ bestimmen...
+ $lessonID = getlessonID($_SESSION['user'], $_GET['Part']);
+ $lessonPart = getlessonPart($_SESSION['user'], $_GET['Part']);
+ $lessonNr = getlessonNR($_SESSION['user'], $_GET['Part']);
+
+
+ if ($lessonID[1] == 0)
+ {
+?>
+ <a href="/dipl/lessons/lessonstart.php?<?=SID?>" id="menue" ><< zurück zur Übersicht</a>
+<?
+
+ }
+ else
+ {
+
+
+?>
+ <a href="/dipl/lessons/lessoni.php?lessNr=<?=$lessonID[1]?>&Nr=<?=$lessonNr[1]?>&SQLtype=<?=$lessontype[1]?>&Part=<?=$lessonPart[1]?>&<?=SID?>" id="menue" >zur nächsten Aufgabe >></a>
+<?
+
+ }
+
+?>
+
+ </td>
+ </tr>
+
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=2 class=text>Ihre Anfrage ergab folgende Ergebnisse:</td>
+ </tr>
+
+ <tr>
+
+
+
+<?
+
+// Ausgabe der Ergebnisse
+
+$stmt = createconnect($sql);
+
+$check = @OCIExecute($stmt);
+
+$nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen...
+
+
+if ( $nrows > 0 )
+ {
+ print "<TABLE BORDER=\"1\">\n"; //Ausgabe der ERgebnisse auf der Seite...
+ print "<TR>\n";
+ while ( list( $key, $val ) = each( $results ) )
+ {
+ print "<TH>$key</TH>\n";
+ }
+ print "</TR>\n";
+
+ for ( $i = 0; $i < $nrows; $i++ )
+ {
+ reset($results);
+ print "<TR>\n";
+ while ( $column = each($results) )
+ {
+ $data = $column['value'];
+ print "<TD>$data[$i]</TD>\n";
+ }
+ print "</TR>\n";
+
+ }
+ print "<tr><td colspan=$ncols class=text><br>$ncols Spalten mit<BR></td></tr>";
+ print "<tr><td colspan=$ncols class=text>$nrows Datensätzen ausgewählt<BR></td></tr>";
+ print "<tr><td colspan=$ncols class=text>\n Ihre Anfrage war: " . $sql . "</td></tr>";
+ print "</TABLE><BR>";
+ }
+
+else
+ {
+ print "<TABLE BORDER=\"1\">\n";
+ print "<tr><td class=text>Es wurden keine Daten gefunden...<BR>\n</td></tr>";
+ print "</TABLE><BR>";
+
+ }
+
+
+?>
+
+</tr>
+</table>
+</table>
+
+<?
+
+ include("../footer.php");
+
+ if (!$r)
+ {
+ exit; //Abbruch um hochsetzen des Aufgabenstandes zu verhindern...
+ }
+
+
+
+}
+
+
+//--------------------------------------------------------------------------------------------------------
+
+
+function create($sql, $user, $muster, $typ, $name)
+
+{
+ $_SESSION['statment'] = $sql; //für die erneute Darstellung der Anfrage im Textfeld beim Navigieren zur eben gelösten Aufgabe...
+
+ $stmt = dbconnect($sql);
+
+
+ if ( OCIStatementType($stmt) == $typ ) //wenn die Eingabe ein create statement ist...
+
+ {
+ $do = "create tablespace $name$user logging datafile '/opt/oracle/oradata/dbprakt/$name$user.dbf' size 2m"; //Anlegen eines Tablespace mit dem Namen+ID des Studenten (STUDENTS.NAME+STUDENTS.STUD_ID)
+ $stmt_prepare_tablespace = createconnect($do);
+ $cr_tbl_sp = @OCIExecute($stmt_prepare_tablespace);
+
+ if ($cr_tbl_sp == 1)
+ {
+ $sqlspace = $sql . " tablespace $name$user"; //ergänzen des Statements um den eigenen Tablespace
+ $stmt_create = createconnect($sqlspace);
+ $cr_tbl = @OCIExecute($stmt_create); // ausführen des create_Table_Statements...
+
+ if ($cr_tbl == 1)
+ {
+?>
+ <tr>
+ <td><div class=titel>AUSWERTUNG</div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=2 class=text>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.</td>
+ </tr><tr>
+ <td align="left" bgcolor="#F7F7F7">
+
+<?
+
+ unset($_SESSION['statment']); //bei richtiger Antwort wird die vorangegangene Lösung nicht mehr im Eingabefeld der nächsten Aufgabe angezeigt
+ $lessontype = getlessontype($_SESSION['user'], $_GET['Part']); //die nachfolgende Aufgaben_ID & Typ bestimmen...
+ $lessonID = getlessonID($_SESSION['user'], $_GET['Part']);
+ $lessonPart = getlessonPart($_SESSION['user'], $_GET['Part']);
+
+
+ if ($lessonID[1] == 0)
+ {
+?>
+ <a href="/dipl/lessons/lessonstart.php?<?=SID?>" id="menue" ><< zurück zur Übersicht</a>
+
+<?
+ }
+ else
+ {
+
+
+?>
+ <a href="/dipl/lessons/lessoni.php?lessNr=<?=$lessonID[1]?>&SQLtype=<?=$lessontype[1]?>&Part=<?=$lessonPart[1]?>&<?=SID?>" id="menue" >zur nächsten Aufgabe >></a>
+<?
+
+ }
+
+?>
+
+ </td>
+ </tr>
+
+<?
+
+ }
+
+ else
+ {
+ $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);
+ print "Tablespace wieder gelöscht....<br><br>";
+ errors($sql, $user, $_GET['lessNr']);
+ $e = OCIError($stmt_create);
+ PrintOCIError($e); // OCIFehlermeldung in Variable einlesen
+ }
+ }
+
+ }
+
+ else
+
+ {
+?>
+ <tr>
+ <td><div class=titel>AUSWERTUNG</div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td bgcolor=#FE5555 colspan=2><div class=text>Ihr SQLStatement entspricht keiner SQL_<? print $typ; ?>_Anweisung. Bitte versuchen sie es erneut!</div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=2 class=text>Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen.</td>
+ </tr>
+
+ <tr>
+ <td align="left" bgcolor="#F7F7F7" ><a href="/dipl/lessons/lessoni.php?lessNr=<?=$_GET['lessNr']?>&SQLtype=<?=$_GET['SQLtype']?>&Part=<?=$_GET['Part']?>&<?=SID?>" id="menue"><< zurück zur Aufgabenstellung </a>
+ </td>
+ </tr>
+<?
+ exit;
+ }
+
+
+
+}
+
+
+//--------------------------------------------------------------------------------------------------------
+
+
+function insert($sql, $user, $muster, $typ, $name)
+{
+ $_SESSION['statment'] = $sql; // für die erneute Darstellung der Anfrage im Textfeld beim Navigieren zur eben gelösten Aufgabe...
+
+ $stmt = createconnect($sql);
+
+
+ if ( OCIStatementType($stmt) == $typ ) //wenn die Eingabe ein select statement ist...
+
+ {
+
+ $r = @OCIExecute($stmt);
+
+ if (!$r)
+ {
+ errors($sql, $user, $_GET['lessNr']);
+ $e = OCIError($stmt); // OCIFehlermeldung in Variable einlesen
+ PrintOCIError($e); // und ausgeben
+ }
+
+ unset($_SESSION['statment']); //bei richtiger Antwort wird die vorangegangene Lösung nicht mehr im Eingabefeld der nächsten Aufgabe angezeigt
+?>
+ <tr>
+ <td><div class=titel>AUSWERTUNG</div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=2 class=text>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.</td>
+ </tr>
+
+ <tr>
+ <td align="left" bgcolor="#F7F7F7">
+
+<?
+
+ $lessontype = getlessontype($_SESSION['user'], $_GET['Part']); //die nachfolgende Aufgaben_ID & Typ bestimmen...
+ $lessonID = getlessonID($_SESSION['user'], $_GET['Part']);
+ $lessonPart = getlessonPart($_SESSION['user'], $_GET['Part']);
+ $lessonNr = getlessonNR($_SESSION['user'], $_GET['Part']);
+
+?>
+ <a href="/dipl/lessons/lessoni.php?lessNr=<?=$lessonID[1]?>&Nr=<?=$lessonNr[1]?>&SQLtype=<?=$lessontype[1]?>&Part=<?=$lessonPart[1]?>&<?=SID?>" id="menue" >zur nächsten Aufgabe >></a>
+ </td>
+ </tr>
+<?
+
+ }
+
+ else
+
+ {
+
+ print "nö - kein insert";
+ $e = OCIError($stmt); // OCIFehlermeldung in Variable einlesen
+ PrintOCIError($e);
+ exit;
+
+ }
+
+
+
+}
+
+
+
+//--------------------------------------------------------------------------------------------------------
+
+
+function success($sql, $id, $lesson) // Eintrag richtiger Lösungen in die vorgesehene Tabelle
+
+{
+ $check = "select Lesson_id from logon where Stud_id='$id' and LESSON_id='$lesson'";
+
+ $checkstmt = dbconnect($check);
+
+ OCIExecute($checkstmt);
+
+ $exists = OCIFetchStatement($checkstmt, $results);
+
+ if ($exists > 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....
+{
+ ?>
+
+
+ <tr >
+ <td><div class=titel>AUSWERTUNG</div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td bgcolor=#FE5555 colspan=2><div class=text>Ihr SQLStatement konnte nicht ausgeführt werden. <?echo "<pre>".$err['message']."</pre>\n";?> Bitte versuchen sie es erneut! </div></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan=2 class=text>Folgen sie bitte dem untenstehenden link, um zur eben bearbeiteten Aufgabe zurück zu gelangen.</td>
+ </tr>
+ <tr>
+ <td align="left" bgcolor="#F7F7F7" ><a href="/dipl/lessons/lessoni.php?lessNr=<?=$_GET['lessNr']?>&SQLtype=<?=$_GET['SQLtype']?>&Part=<?=$_GET['Part']?>&<?=SID?>" id="menue"><< zurück zur Aufgabenstellung </a>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ </tr>
+</table>
+</table>
+
+
+ <?
+include("../footer.php");
+ exit;
+}
+
+
+//--------------------------------------------------------------------------------------------------------
+
+
+function getlessontype($user, $part)
+{
+
+
+$sql = "SELECT tmp.TYP 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 LessonTypen 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....
+ }
+ }
+
+$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