Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:probeprojekt:start [10.06.2021 14:23] – [Vertiefung Datenbank-Klasse] sbel | faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:probeprojekt:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Probeprojekt: | ||
- | ===== Vertiefung Datenbank-Klasse ===== | ||
- | |||
- | Zunächst machen wir uns noch ein paar Gedanken darüber, wie wir die Datenbank Klasse erweitern können, so dass diese nicht nur " | ||
- | |||
- | Beispielsweise könnte man eine " | ||
- | |||
- | Hilfreich ist vielleicht auch ein Attribut, das die abzufragende Tabelle(n) beinhaltet, ein passender Setter wäre da auch günstig. | ||
- | |||
- | |||
- | |||
- | <code php> | ||
- | class mysqldb { | ||
- | |||
- | /** | ||
- | * Connect to db, set connection attribute to pdo object | ||
- | * | ||
- | * @param string | ||
- | * @param string | ||
- | * @param string | ||
- | * @param string | ||
- | */ | ||
- | function mysqldb($dbusername, | ||
- | |||
- | try { | ||
- | $pdo = new PDO(" | ||
- | $pdo-> | ||
- | |||
- | } catch ( PDOException $e ) { | ||
- | echo ' | ||
- | exit(); | ||
- | } | ||
- | |||
- | $this-> | ||
- | |||
- | } | ||
- | | ||
- | /** | ||
- | * Get pdo object for usage in other classes | ||
- | */ | ||
- | function getConnection() { | ||
- | return $this-> | ||
- | } | ||
- | | ||
- | /** | ||
- | * Set attribute query table to given value | ||
- | * | ||
- | * @param string | ||
- | */ | ||
- | function setQueryTable($tables) { | ||
- | $this-> | ||
- | } | ||
- | | ||
- | /** | ||
- | * Make query, return array with results | ||
- | * | ||
- | * @param string | ||
- | * | ||
- | * @return array Query result | ||
- | */ | ||
- | function searchName($searchname) { | ||
- | $statement= $this-> | ||
- | // | ||
- | $statement-> | ||
- | | ||
- | // Besonderheit, | ||
- | // $statement-> | ||
- | // https:// | ||
- | // Für uns ist es meist besser ein assoziatives Array | ||
- | // mit den Ergebnissen zurückzugeben das dann gerendert werden | ||
- | // kann | ||
- | // Leeres Array definieren | ||
- | $resultArray = array(); | ||
- | while($row = $statement-> | ||
- | // Die Zeilen an das Array anhängen (Push) | ||
- | $resultArray[] = $row; | ||
- | } | ||
- | |||
- | // For Debugging | ||
- | // print_r($resultArray); | ||
- | | ||
- | // Ergebnisarray zurückgeben | ||
- | return $resultArray; | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Aufgaben ===== | ||
- | |||
- | |||
- | {{: | ||
- | === (A1) === | ||
- | |||
- | Erweitere die bisherige Arbeit am Plugin auf ein " | ||
- | |||
- | (1) Lege die {{: | ||
- | |||
- | (2) Ergänze dein Plugin um eine Konfigurations-Option " | ||
- | |||
- | (3) Erstelle ein -- zunächst einfaches -- Abfrageformular, | ||
- | |||
- | (4) Nachdem die Grundfunktionalität sichergestellt ist, kannst du das Abfrageformular und die Programmlogik um weitere Funktionen erweitern. (Sortierung, | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) === | ||
- | |||
- | Erweitere dein Plugin um ein Formular, mit dem ein neuer Datensatz an die Tabelle angefügt werden kann. | ||
- | |||
- | (1) Welches der Formulare angezeigt werden soll, kann z.B. durch den Parameter nach dem ''>'' | ||
- | |||
- | {{projekt> | ||
- | {{projekt> | ||
- | | ||
- | (2) Beachte Sicherheitsaspekte und führe eine Eingabeüberprüfung durch, bevor du die Eingabedaten an deine Abfrage übergibst. |