Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:probeprojekt:start [09.06.2021 13:32] – sbel | faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:probeprojekt:start [22.05.2023 16:25] (aktuell) – [Aufgaben] Frank Schiebel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Probeprojekt: | ====== 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 __construct($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 ===== | ||
+ | |||
{{: | {{: | ||
Zeile 8: | Zeile 96: | ||
(1) Lege die {{: | (1) Lege die {{: | ||
- | (2) Erstelle ein -- zunächst einfaches -- Abfrageformular, mit dem du z.B. anhand des Vor- und/oder Nachnamens nach der Adresse einer Person suchen | + | (2) Ergänze dein Plugin um eine Konfigurations-Option " |
- | (3) Nachdem die Grundfunktionalität sichergestellt ist, kannst du das Abfrageformular | + | (3) Erstelle ein -- zunächst einfaches -- Abfrageformular, |
+ | |||
+ | (4) Nachdem die Grundfunktionalität sichergestellt ist, kannst du das Abfrageformular | ||
---- | ---- | ||
Zeile 16: | Zeile 106: | ||
=== (A2) === | === (A2) === | ||
- | Erweitere dein Plugin | + | Ergänze bei deinem |
(1) Welches der Formulare angezeigt werden soll, kann z.B. durch den Parameter nach dem ''>'' | (1) Welches der Formulare angezeigt werden soll, kann z.B. durch den Parameter nach dem ''>'' | ||
- | {{projekt> | + | {{projekt> |
{{projekt> | {{projekt> | ||
| | ||
- | (2) Beachte Sicherheitsaspekte und führe eine Eingabeüberprüfung durch, bevor du die Daten an dein Abfrage übergibst. | + | (2) Beachte Sicherheitsaspekte und führe eine Eingabeüberprüfung durch, bevor du die Eingabedaten |
+ | |||
+ | |||
+ | ---- | ||
+ | Du hängst fest? -> [[.hilfestellung|Hilfestellung]] |