Kapitel 6 Lektion 7 gesplittet

This commit is contained in:
Jan Unger
2016-08-25 20:50:07 +02:00
parent 88cf71d772
commit a4afe1a11c
16 changed files with 843 additions and 45 deletions

View File

@@ -12,23 +12,3 @@ function holeDatenbankverbindung()
[PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"]
);
}
function holeLied($liedId)
{
$db = holeDatenbankverbindung();
$liedStatement = $db->prepare("
SELECT
lieder.track,
lieder.titel,
cds.id AS cd_id,
cds.name AS cdname,
kuenstler.name AS kuenstlername
FROM lieder
LEFT JOIN cds ON lieder.cd_id = cds.id
LEFT JOIN kuenstler ON cds.kuenstler_id = kuenstler.id
WHERE lieder.id = :lied_id
");
$liedStatement->execute(['lied_id' => $liedId]);
return $liedStatement->fetch(PDO::FETCH_ASSOC);
}

View File

@@ -5,12 +5,8 @@ require __DIR__ . '/_application.php';
$db = holeDatenbankverbindung();
if (count($_POST) > 0) {
$insertStatement = $db->prepare("INSERT INTO lieder (cd_id, track, titel) VALUES (:cd_id, :track, :titel)");
$insertStatement->execute([
'cd_id' => $_GET['id'],
'track' => $_POST['track'],
'titel' => $_POST['titel']
]);
// TODO: Lied in die Datenbank speichern
header('Location: cd.php?id=' . htmlspecialchars($_GET['id']));
exit;
@@ -29,7 +25,7 @@ $cdStatement = $db->prepare("
$cdStatement->execute(['cd_id' => $_GET['id']]);
$cd = $cdStatement->fetch(PDO::FETCH_ASSOC);
$liederStatement = $db->prepare("SELECT * FROM lieder where cd_id = :cd_id ORDER BY track ASC");
$liederStatement = $db->prepare("SELECT * FROM lieder where cd_id = :cd_id");
$liederStatement->execute(['cd_id' => $_GET['id']]);
$lieder = $liederStatement->fetchAll(PDO::FETCH_ASSOC);

View File

@@ -3,26 +3,20 @@
require __DIR__ . '/_application.php';
$meldungen = [];
$db = holeDatenbankverbindung();
if (!isset($_GET['id'])) {
$meldungen[] = 'Bitte geben Sie die ID des Liedes an, das Sie bearbeiten möchten.';
}
$lied = holeLied($_GET['id']);
// TODO: Lied mit Angaben zu CD und Künstler aus der Datenbank laden
$lied = [];
if (!$lied) {
$meldungen[] = 'Es konnte kein Lied mit der ID ' . htmlspecialchars($_GET['id']) . ' gefunden werden.';
}
if (isset($_POST['aktion'])) {
if ($_POST['aktion'] === 'speichern') {
$updateStatement = $db->prepare("UPDATE lieder SET track = :track, titel = :titel WHERE id = :lied_id");
$updateStatement->execute([
'track' => $_POST['track'],
'titel' => $_POST['titel'],
'lied_id' => $_GET['id']
]);
}
if (isset($_POST['aktion']) && $_POST['aktion'] === 'speichern') {
// TODO: Lied in der Datenbank aktualisieren
header('Location: cd.php?id=' . htmlspecialchars($lied['cd_id']));
exit;

View File

@@ -3,22 +3,20 @@
require __DIR__ . '/_application.php';
$meldungen = [];
$db = holeDatenbankverbindung();
if (!isset($_GET['id'])) {
$meldungen[] = 'Bitte geben Sie die ID des Liedes an, das Sie löschen möchten.';
}
$lied = holeLied($_GET['id']);
// TODO: Lied aus der Datenbank laden (analog zu lied_bearbeiten.php)
$lied = [];
if (!$lied) {
$meldungen[] = 'Es konnte kein Lied mit der ID ' . htmlspecialchars($_GET['id']) . ' gefunden werden.';
}
if (isset($_POST['aktion'])) {
if ($_POST['aktion'] === 'loeschen') {
$deleteStatement = $db->prepare("DELETE FROM lieder WHERE id = :lied_id");
$deleteStatement->execute(['lied_id' => $_GET['id']]);
}
if (isset($_POST['aktion']) && $_POST['aktion'] === 'loeschen') {
// TODO: Lied aus der Datenbank löschen
header('Location: cd.php?id=' . htmlspecialchars($lied['cd_id']));
exit;