# Aufgabe 1 > Dauer: 2 h ## 1)  ## 2) Datenbankentwurf in Relationenschreibweise ```sql use emensawerbeseite; -- Tabelle 'Ersteller' erstellen CREATE TABLE IF NOT EXISTS Ersteller ( EMail VARCHAR(255) PRIMARY KEY, Name VARCHAR(255) DEFAULT 'anonym' ); -- Tabelle 'Wunschgericht' erstellen CREATE TABLE IF NOT EXISTS Wunschgericht ( ID INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(255) NOT NULL, Beschreibung TEXT, Erstellungsdatum DATE NOT NULL, Ersteller_EMail VARCHAR(255) NOT NULL, FOREIGN KEY (Ersteller_EMail) REFERENCES Ersteller(EMail) ); ``` ## 6) ### a) ````sql select * from wunschgericht order by Erstellungsdatum desc limit 5; ```` ### b) ````sql -- basierend auf M3 6) 4) select ersteller.Name, count(Ersteller_EMail) as anzahl from wunschgericht, ersteller where ersteller.EMail = wunschgericht.Ersteller_EMail group by Ersteller_EMail order by anzahl desc ; ```` --- # Aufgabe 2 > Dauer: 2h Bei der Übergabe von Daten in die DB müssen diese geprüft werden. Bei der Ausgabe von Daten aus der DB im HTML Code müssen diese Maskiert werden. ````php // wunschgericht.php // Zeile 33 $sql_ersteller_exists = "SELECT * FROM ersteller WHERE EMail = '" . $ersteller_email . "'"; $sql_ersteller_exists = "SELECT * FROM ersteller WHERE EMail = '" . mysqli_real_escape_string($link, $ersteller_email) . "'"; // Zeile 36 $sql_ersteller = "INSERT INTO ersteller(EMail, Name) VALUES ('" . $ersteller_email . "','" . $ersteller_name . "')"; $sql_ersteller = "INSERT INTO ersteller(EMail, Name) VALUES ('" . mysqli_real_escape_string($link, $ersteller_email) . "','" . mysqli_real_escape_string($link, $ersteller_name) . "')"; // Zeile 42 $sql = "INSERT INTO wunschgericht(Name, Beschreibung, Erstellungsdatum, Ersteller_EMail) VALUES ('" . $gericht_name . "','" . $gericht_beschreibung . "','". $date ."','" . $ersteller_email . "')"; $sql = "INSERT INTO wunschgericht(Name, Beschreibung, Erstellungsdatum, Ersteller_EMail) VALUES ('" . mysqli_real_escape_string($link, $gericht_name) . "','" . mysqli_real_escape_string($link, $gericht_beschreibung) . "','".$date."','" . mysqli_real_escape_string($link, $ersteller_email) . "')"; ?> ```` ````php // index.php // Zeile 43 $sql_besucher = "UPDATE besucher_counter SET besucher =".$besucherCount; $sql_besucher = "UPDATE besucher_counter SET besucher =". mysqli_real_escape_string($link, $besucherCount); // Zeile 190 $tabelle .= "