Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
praktikum_informationssysteme [2015/01/13 08:15] web1423 |
praktikum_informationssysteme [2015/02/23 09:29] (aktuell) |
||
---|---|---|---|
Zeile 52: | Zeile 52: | ||
</code> | </code> | ||
- | Nun soll als Regel die ID aus Gegenstand, die bei insert erstellt wird auch in LogAnz erstellt werden. Dazu brauchen wir virtuelle Tabellen (new, old). New enthält die Werte und Spalten, die neu beim Abarbeiten der Regel hinzugekommen sind. Old sammelt die Werte, die von insert und delete betroffen waren. Bei update lassen sich beide Regeln benutzen. Zuerst wird die zuvor erstellte Regel entfernt und eine neue Tabelle Log erstellt: | + | Nun soll als Regel die ID aus Gegenstand, die bei insert erstellt wird auch in LogAnz erstellt werden. Dazu brauchen wir virtuelle Tabellen (new, old). **New** enthält die Werte und Spalten, die neu beim Abarbeiten der Regel hinzugekommen sind. **Old** sammelt die Werte, die von insert und delete betroffen waren. Bei update lassen sich beide Regeln benutzen. Zuerst wird die zuvor erstellte Regel entfernt und eine neue Tabelle Log erstellt: |
<code sql> | <code sql> | ||
Zeile 186: | Zeile 186: | ||
Voreinstellung für Transaktionen ist read committed . <note tip>Isolationsgrade bestimmen, was andere Transaktionen von dem was um sie herum passiert, sehen können.</note> | Voreinstellung für Transaktionen ist read committed . <note tip>Isolationsgrade bestimmen, was andere Transaktionen von dem was um sie herum passiert, sehen können.</note> | ||
- | * read committed: andere Transaktionen können Lesen, was passiert. | + | * read committed: andere Transaktionen können Lesen, was passiert, aber lost update problem. |
- | * serializable: Abschotten der Transaktionen von der Außenwelt, so als wären sie hintereinander ausgeführt worden, aber lost update problem. | + | * serializable: Abschotten der Transaktionen von der Außenwelt, so als wären sie hintereinander ausgeführt worden. |
<code sql> | <code sql> | ||
Zeile 306: | Zeile 306: | ||
<code sql> | <code sql> | ||
- | SELECT relname AS Tabelle, Uni_Bedienstet, * FROM Uni_Bedienstet, pg_class | + | SELECT relname AS Tabelle, Uni_Bedienstet. * FROM Uni_Bedienstet, pg_class |
WHERE Uni_Bedienstet.tableoid = pg_class.oid; | WHERE Uni_Bedienstet.tableoid = pg_class.oid; | ||
</code> | </code> | ||
Zeile 542: | Zeile 542: | ||
==== PHP Grundlagen ==== | ==== PHP Grundlagen ==== | ||
- | PHP aufrufen: <?php , <font inherit/inherit;;inherit;;inherit>PHP</font> beenden<font inherit/inherit;;inherit;;inherit>: ?></font> | + | * PHP aufrufen: <?php , PHP beenden: ?> |
+ | * Textausgabe: echo "String". In der Textausgabe mit echo kann sowohl ein normaler String als auch HTML oder Javascript Code stehen. Um in einem solchen String ein Hochkommata oder andere Programmiercodes einzufügen, muss davor ein \ stehen. **Einfache Hochkommata** meinen: Nimm alles wörtlich, d.h. \n wird kein Zeilenumbruch ausgeben. Aber mittels Konkatenation kann \n hinzugefügt werden: echo '<sdfsdf>' . "\n"; | ||
+ | * Zeilenumbruch: \n | ||
+ | * Variablen definieren: $[Variablenname] | ||
+ | * Konkatenation: Was in Java ein + ist, ist in php ein Punkt | ||
- | <font inherit/inherit;;inherit;;inherit>Textausgabe: echo "String". In der Textausgabe mit echo kann sowohl ein normaler String als auch HTML oder Javascript Code stehen. Um in einem solchen String ein Hochkommata einzufügen, muss davor ein \ stehen.</font> | + | Funktion definieren: |
+ | <code php> | ||
+ | function verdoppeln($wert) | ||
+ | |||
+ | { return $wert * 2; | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | ==== Formular erstellen ==== | ||
+ | |||
+ | Jedes Formular braucht ein action und method Attribut. input type sorgt für Eingabefelder. Der Absendebutton wird über input type="submit" hinzugefügt. | ||
+ | |||
+ | Bei action in Form ist angegeben: <?php echo $_SERVER['PHP_SELF']; ?> | ||
+ | |||
+ | * $_SERVER: Ein Array, in dem viele Servereigenschaften gespeichert sind | ||
+ | * ['PHP_SELF']: Array an der Position PHP_SELF wird aufgerufen (Array-Zeile ist mit Namen gekennzeichnet). PHP_SELF beschreibt die derzeitige PHP-Datei, also wird die gerade aufgerufene PHP-Datei aufgerufen. | ||
+ | * $_POST: Ebenfalls ein Arraystandard, in dem Zeilen aus dem Array ausgegeben werden, die via Post Methode bei Forms übergeben wurden. Diese Zeilen heissen wie die input Elemente. | ||
+ | |||
+ | ==== Verbindung aufbauen und Anfragen ==== | ||
+ | |||
+ | |||
+ | * Wichtig: Encoding der Datenbank muss das selbe Encoding der PHP-Ausgabe haben. | ||
+ | * Verbindung herstellen: [$conn=]pg_connect("host=gowron.fim.uni-passau.de dbname=roeder user=roeder password=0815"); | ||
+ | * Anfrage an Datenbank: pg_query($conn. "select * from Wein;"); | ||
+ | * Tabellenbesonderheiten von php: pg_num_rows (zeilenanzahl), pg_num_fields (spaltenanzahl) | ||
+ | * Ergebnis einer Tabellenzelle: pg_fetch_result($variable, $i, $j); | ||
+ | * Überschrift einer Spalte: pg_field_name |