summaryrefslogtreecommitdiff
path: root/doc/niels-diplom/Dateistruktur/lessons
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
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')
-rwxr-xr-xdoc/niels-diplom/Dateistruktur/lessons/errror_tests.php52
-rwxr-xr-xdoc/niels-diplom/Dateistruktur/lessons/lessoni.php229
-rwxr-xr-xdoc/niels-diplom/Dateistruktur/lessons/lessonstart.php183
-rwxr-xr-xdoc/niels-diplom/Dateistruktur/lessons/showlessons.php163
-rwxr-xr-xdoc/niels-diplom/Dateistruktur/lessons/try.php1145
5 files changed, 1772 insertions, 0 deletions
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 @@
+<?
+
+
+$sql = "test";
+
+fehler($sql);
+
+// Display OCI error
+function PrintOCIError($err)
+{
+ echo "<pre>".$err['message']."</pre>\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 @@
+<?php
+
+include("../header.php");
+include("try.php");
+
+$text = getText($_GET['lessNr']); //der Text der Aufgabenstellung wird aus der DB gezogen.....
+$muster = getMuster($_GET['lessNr']); //Muster der Aufgabenstellung...
+
+
+if ($_GET['SQLtype'] == "INSERT" OR $_GET['SQLtype'] == "CREATE" OR ($_GET['SQLtype'] == "SELECT" and $_GET['Part'] == "Vorbereitung")) //Heraussuchen der Tabellen, in die vom Nutzer einggefügt werden darf
+{
+ $user = $_SESSION['user'];
+ $name = strtoupper($_SESSION['name']); //Großschreibung wegen ORACLEinternem Handling!!
+
+ $sql = "SELECT TABLE_NAME FROM dba_tables WHERE tablespace_name like '$name$user'";
+
+ $stmt = createconnect($sql);
+
+ OCIExecute($stmt);
+
+ $trows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen...
+
+ if ( $trows == 1 )
+ {
+
+ OCIExecute($stmt);
+
+ while(OCIFetch($stmt))
+ {
+ $table = OCIResult($stmt, "TABLE_NAME");
+ }
+
+ $sql = "SELECT COLUMN_NAME, DATA_TYPE FROM dba_tab_columns WHERE table_name like '$table'";
+
+ $stmt = createconnect($sql);
+
+ OCIExecute($stmt);
+
+ $nrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen...
+
+ OCIExecute($stmt);
+
+ while(OCIFetch($stmt))
+ {
+ $name = OCIResult($stmt, "COLUMN_NAME");
+ $type = OCIResult($stmt, "DATA_TYPE");
+ $struktur = $struktur . "Spalte: " . $name. " vom Typ: ".$type. "<br>";
+ }
+
+ }
+
+
+
+}
+
+
+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;
+
+}
+
+
+?>
+
+<a name="start"></a>
+
+ <tr>
+ <td class="titel">Aufgabe <? print $_GET['Nr'];?></td>
+ </tr>
+ <tr>
+ <td valign="top" class="text">
+ <tr>
+ <td valign="center" class="text"><br><div class="textred">
+<?
+ if ($_GET['SQLtype'] == "INSERT")
+ {
+ if ( $trows == 1)
+ {
+ print "<b>ACHTUNG >></B><br><br>Sie haben nun die Möglichkeit, in die von Ihnen angelegte Tabelle:<br><b>\"" . $table . "\"</b> Daten einzufügen!<br>Die Struktur der von Ihnen angelegten Tabelle entspricht folgendem Schema:<br>".$struktur."<br><BR>";
+ }
+ else
+ {
+ print "<b>ACHTUNG >></B><br><br>Sie haben bisher noch keine Tabelle angelegt. Bitte lösen sie zuerst die <a href=/dipl/lessons/lessonstart.php?".SID.">Aufgabe 2(CREATE)</a> der Vorbereitung...<br><br>";
+?>
+ </td> </tr></table>
+ <tr>
+ <td width="200" align="right" valign="top" class="randmenu"><p>&nbsp;</td>
+ </tr>
+ </table>
+
+
+<?
+ include("../footer.php");
+ exit;
+ }
+ }
+
+ if ($_GET['SQLtype'] == "CREATE")
+ {
+ if ( $trows == 1)
+ {
+ print "<b>ACHTUNG >></B><br><br>Sie haben bereits eine Tabelle \"" . $table . "\"</b> angelegt!<br>Die Struktur der von Ihnen angelegten Tabelle entspricht folgendem Schema:<br>".$struktur."<br><br>Bitte lösen sie nun die <a href=/dipl/lessons/lessonstart.php?".SID.">Aufgabe 3(INSERT)</a> der Vorbereitung...<br><br>";
+?>
+ </td> </tr></table>
+ <tr>
+ <td width="200" align="right" valign="top" class="randmenu"><p>&nbsp;</td>
+ </tr>
+ </table>
+<?
+ include("../footer.php");
+ exit;
+ }
+ }
+
+ if ($_GET['SQLtype'] == "SELECT" AND $_GET['Part'] == "Vorbereitung" AND $_GET['lessNr'] == "66")
+ {
+ if ( $trows == 1)
+ {
+ $sql = "SELECT * FROM $table";
+ $stmt = createconnect($sql);
+ OCIExecute($stmt);
+ $lrows = OCIFetchStatement($stmt,$results); //Ergebnisse in Array eintragen...
+ if ($lrows <> 0)
+ {
+ print "Die von Ihnen angelegte Tabelle heißt \"" . $table . "\"</b>.<br>Die Struktur der von Ihnen angelegten Tabelle entspricht folgendem Schema:<br>".$struktur."<br><br>";
+ }
+ else
+ {
+ print "Sie haben noch keine Daten in die von Ihnen angelegte Tabelle \"" . $table . "\"</b> eingefügt.<br>Die Struktur der von Ihnen angelegten Tabelle entspricht folgendem Schema:<br>".$struktur."<br><br>Bitte lösen sie zuerst die <a href=/dipl/lessons/lessonstart.php?".SID.">Aufgabe 3(INSERT)</a> der Vorbereitung...<br><br>";
+?>
+ </td> </tr></table>
+ <tr>
+ <td width="200" align="right" valign="top" class="randmenu"><p>&nbsp;</td>
+ </tr>
+ </table>
+
+
+<?
+ include("../footer.php");
+ exit;
+ }
+ }
+
+ else
+ {
+ print "<b>ACHTUNG >></B><br><br>Sie haben bisher noch keine Tabelle angelegt. Bitte lösen sie zuerst die <a href=/dipl/lessons/lessonstart.php?".SID.">Aufgabe 2(CREATE)</a> der Vorbereitung...<br><br>";
+?>
+ </td> </tr></table>
+ <tr>
+ <td width="200" align="right" valign="top" class="randmenu"><p>&nbsp;</td>
+ </tr>
+ </table>
+
+
+<?
+ include("../footer.php");
+ exit;
+ }
+ }
+?>
+
+ </div>
+ <? print $text[0];?>
+
+ <br><br>
+
+ Bitte geben Sie den SQL-Code in das Formularfeld ein und bestätigen sie mit "try".....
+
+ <br><br></td>
+ </tr>
+ <form action="<?=$_POST['PHP_SELF'] . "?lessNr=" . $_GET['lessNr'] . "&SQLtype=". $_GET['SQLtype'] . "&Part=". $_GET['Part'] . "&" . SID?>" method="post" class="text">
+
+ <table>
+ <tr >
+ <td class="titel">
+ <div>SQL</div></td>
+ </tr>
+ <TR>
+ <td align="left"><textarea type="text" name="query" class="inputtext" cols="90" rows="10"><?print $_SESSION['statment'];?></textarea></td>
+ </tr>
+
+ <tr>
+ <td align="left"><input type="submit" name="submitok" value="try...." class="inputsubmit"></td>
+ </tr>
+ </table>
+ </form>
+
+ </td> </tr></table>
+ <tr>
+ <td width="200" align="right" valign="top" class="randmenu"><p>&nbsp;</td>
+ </tr>
+ </table>
+
+
+<?
+include("../footer.php");
+?>
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 @@
+<?php
+
+include("../header.php");
+include("try.php");
+
+
+?>
+
+<a name="start"></a>
+
+<tr>
+<td class="titel">Aufgabenbereich</td>
+</tr>
+ <tr>
+ <td class="text">
+ <tr>
+ <td class="text"><br>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.<br>
+ <UL>
+ <LI>Zuerst müssen die Aufgaben aus der Rubrik "Vorbereitung" abgearbeitet werden. </LI>
+ <LI>Im Anschluß können die Aufgaben aus der Rubrik "Abfragen" abgearbeitet werden.</LI>
+ <LI>Es können jedoch über den Punkt >Aufgabenübersicht< jederzeit alle Aufgabenstellungen eingesehen werden. Unter diesem Punkt finden sie auch alle bereits gelösten Aufgaben und ihre Lösungen wieder.</LI>
+ </UL>
+
+ Die bereits erledigten Aufgaben werden nicht mehr angezeigt.<br>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.<br> 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.<br><br></td>
+
+
+<table>
+<thead>
+ <tr>
+ <th class=titel align=left width=180 bgcolor="#F7F7F7">1. Vorbereitung</th>
+ <th class=titel align=left width=180 bgcolor="#F7F7F7">2. Anfragen</th>
+ </tr>
+</thead>
+
+<tbody>
+
+<td align="left" valign=top width=180>
+<table>
+
+<?
+
+ unset($_SESSION['statment']); // vorangegangene Eingabe in das Textfeld verwerfen
+
+ $part = "Vorbereitung";
+
+
+ $lessontype = getlessontype($_SESSION['user'], $part); //die AUfgabenTypen bestimmen...
+ $lessonID = getlessonID($_SESSION['user'], $part); //die dazugehörige Aufgaben_ID bestimmen...
+ $lessonNR = getlessonNR($_SESSION['user'], $part);
+ $lessonPart = getlessonPart($_SESSION['user'], $part); //den Aufgabenpart bestimmen
+ $num = count($lessontype); //Anzahl der gefundenen Aufgaben ausgeben....
+
+
+ if ($lessontype[0] == "0")
+ {
+
+?>
+
+
+
+ <tr>
+ <td align="left" bgcolor=#ffb24a><div class=text>
+<?
+ print "Sie haben alle Vorbereitungen erfolgreich abgeschlossen! Bitte bearbeiten sie nun die Anfragen! <br>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??
+
+?>
+ </div></td>
+ </tr>
+
+
+<?
+ }
+
+ else
+ {
+?>
+
+
+<?
+
+ for ( $i = 1; $i-1 < $num-1; $i++ )
+ {
+?>
+
+ <tr>
+
+ <td width=100%>
+ <a href="/dipl/lessons/lessoni.php?lessNr=<?=$lessonID[$i-1]?>&Nr=<?=$lessonNR[$i-1]?>&SQLtype=<?=$lessontype[$i-1]?>&Part=<?=$lessonPart[$i-1]?>&<?=SID?>" id="menue" >Aufgabe <? print $lessonNR[$i-1] . " (" . $lessontype[$i-1] . ") " ?></a>
+ </td>
+
+ </tr>
+
+<?
+ }
+ }
+?>
+
+</table>
+</td>
+
+<td align="left" valign=top width=180>
+<table>
+
+<?
+
+
+
+ $part = "Abfragen";
+
+ $lessontype = getlessontype($_SESSION['user'], $part); //die AUfgabenTypen bestimmen...
+ $lessonID = getlessonID($_SESSION['user'], $part); //die dazugehörige Aufgaben_ID bestimmen...
+ $lessonNR = getlessonNR($_SESSION['user'], $part);
+ $lessonPart = getlessonPart($_SESSION['user'], $part);
+ $num = count($lessontype); //Anzahl der gefundenen Aufgaben ausgeben....
+
+
+ if ($lessontype[0] == "0")
+ {
+
+?>
+ <tr>
+ <td align="left" bgcolor=#ffb24a><div class=text>
+<?
+ print "Sie haben alle Aufgaben erfolgreich gelöst! Ihr Praktikum ist damit abgeschlossen! <br>Sehen sie sich Ihre persönliche Auswertung unter dem entsprechenden Punkt im Menü an.";
+?>
+ </div></td>
+ </tr>
+
+<?
+ }
+
+
+ else
+ {
+
+ for ( $i = 1; $i-1 < $num-1; $i++ )
+ {
+?>
+
+ <tr>
+ <td align="left" width=100%><a href="/dipl/lessons/lessoni.php?lessNr=<?=$lessonID[$i-1]?>&Nr=<?=$lessonNR[$i-1]?>&SQLtype=<?=$lessontype[$i-1]?>&Part=<?=$lessonPart[$i-1]?>&<?=SID?>" id="menue" >Aufgabe <? print $lessonNR[$i-1] . " (" . $lessontype[$i-1] . ") " ?></a>
+ </td>
+ </tr>
+
+<?
+
+ }
+ }
+?>
+
+</table>
+</td>
+
+</tbody>
+<tfoot>
+ <tr>
+ <td class=titel align=left colspan=2 bgcolor="#F7F7F7"><br></td>
+ </tr>
+ <tr>
+ <td class=titel align=left colspan=2 bgcolor="#F7F7F7"><a href="/dipl/lessons/showlessons.php?<?=SID?>" id=menue>Aufgabenstellungen im Überblick >></td>
+ </tr>
+</tfoot>
+</table>
+
+
+</td>
+</tr>
+</table>
+
+
+<tr>
+<td align="right" valign="top" class="randmenu"><p>&nbsp;</td>
+</tr>
+</table>
+
+
+<?
+ include("../footer.php");
+?> \ 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 @@
+<?php
+
+ include("../header.php");
+ include("try.php");
+ $user = $_SESSION['user'];
+?>
+
+
+<tr >
+<td class=titel>Aufgabenübersicht von <?echo $_SESSION['fname'] . " " . $_SESSION['name']?></td>
+</tr>
+
+<tr >
+<td class=titel><br></td>
+</tr>
+
+<tr>
+<td bgcolor=#F7F7F7 colspan=2 class=text>Die nachfolgenden Aufgaben wurden erfolgreich gelöst</td>
+</tr>
+
+<tr>
+<td>
+
+<?
+
+$sql = "SELECT LE.TEXT FROM LESSONS LE, LOGON LO WHERE LO.STUD_ID = '$user' AND LO.LESSON_ID = LE.LESSON_ID order by LO.DATUM";
+
+?>
+
+<br>
+</td>
+</tr>
+
+
+
+
+
+<?
+
+$text = getreadyText($_SESSION['user']); //die dazugehörige Aufgaben_ID bestimmen...
+$muster = getreadyMuster($_SESSION['user']);
+$nr = getreadyNr($_SESSION['user']);
+$statement = getreadystatement($_SESSION['user']);
+$num = count($text);
+
+
+if ($text[0] == "0")
+ {
+
+?>
+ <tr>
+ <td align="left" bgcolor=#ffb24a><div class=text>
+<?
+ print "Bisher haben Sie keine der zu lösenden Aufgaben abgeschlossen. Auf auf ans Werk...";
+?>
+ </div></td>
+ </tr>
+
+<?
+ }
+
+
+ else
+ {
+
+ for ( $i = 1; $i-1 < $num; $i++ )
+ {
+?>
+ <tr>
+ <td class=titel>Aufgabe <?print $nr[$i-1]?></td>
+ </tr>
+ <tr>
+ <td align="left" width=100% class=text><b>Aufgabenstellung:</b> <?print $text[$i-1]?></td>
+ </tr>
+ <tr>
+ <td align="left" width=100% class=text><b>Die Musterlösung war:</b> <?print $muster[$i-1]?></td>
+ </tr>
+ <tr>
+ <td align="left" width=100% class=text><b>Ihre Lösung war:</b> <?print $statement[$i-1]?></td>
+ </tr>
+
+<?
+
+ }
+ }
+?>
+
+
+
+<tr>
+<td colspan=2 class=text><br><br></td>
+</tr>
+
+<tr>
+<td bgcolor=#F7F7F7 colspan=2 class=text>Folgende Aufgaben müssen zum erfolgreichen Abschluß des Praktikums noch gelöst werden.</td>
+</tr>
+
+<tr>
+<td>
+
+
+
+
+
+<br><br>
+</td>
+</tr>
+
+<?
+
+$text = todoText($_SESSION['user']); //die dazugehörige Aufgaben_ID bestimmen...
+$todonr = todoNr($_SESSION['user']);
+$num = count($text);
+
+
+if ($text[0] == "0")
+ {
+
+?>
+ <tr>
+ <td align="left" bgcolor=#ffb24a><div class=text>
+<?
+ print "Bisher haben Sie keine der zu lösenden Aufgaben abgeschlossen. Auf auf ans Werk...";
+?>
+ </div></td>
+ </tr>
+
+<?
+ }
+
+
+ else
+ {
+
+ for ( $i = 1; $i-1 < $num; $i++ )
+ {
+?>
+ <tr>
+ <td class=titel>Aufgabe <?print $todonr[$i-1]?></td>
+ </tr>
+ <tr>
+ <td align="left" width=100% class=text><b>Aufgabenstellung:</b> <?print $text[$i-1]?></td>
+ </tr>
+
+<?
+
+ }
+ }
+?>
+
+
+
+
+
+
+</table>
+</table>
+</table>
+
+
+<?
+include("../footer.php");
+?> \ 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 @@
+<?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