Initiale Version

This commit is contained in:
Jan Unger
2016-08-16 21:20:53 +02:00
commit 88cf71d772
10930 changed files with 1708903 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
<?php
/**
* @return PDO
*/
function holeDatenbankVerbindung()
{
return new PDO(
'mysql:dbname=mediathek;host=localhost',
'root',
'root',
[PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"]
);
}

View File

@@ -0,0 +1,77 @@
<?php
require __DIR__ . '/_application.php';
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'],
]);
header('Location: cd.php?id=' . htmlspecialchars($_GET['id']));
exit;
}
$db = holeDatenbankVerbindung();
$cdStatement = $db->prepare("
SELECT
c.id,
c.name AS cdname,
c.erscheinungsjahr,
k.name AS kuenstlername
FROM cds AS c
LEFT JOIN kuenstler AS k ON c.kuenstler_id = k.id
WHERE c.id = :cd_id
");
$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->execute(['cd_id' => $_GET['id']]);
$lieder = $liederStatement->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mediathek</title>
</head>
<body>
<h1>
<?= htmlspecialchars($cd['cdname']) ?>
(<?= htmlspecialchars($cd['kuenstlername']) ?>, <?= htmlspecialchars($cd['erscheinungsjahr']) ?>)
</h1>
<form action="cd.php?id=<?= htmlspecialchars($_GET['id']) ?>" method="post">
<table>
<tr>
<th>Track</th>
<th>Titel</th>
<th></th>
<th></th>
</tr>
<?php foreach ($lieder as $lied): ?>
<tr>
<td><?= htmlspecialchars($lied['track']) ?></td>
<td><?= htmlspecialchars($lied['titel']) ?></td>
<td><a href="lied_bearbeiten.php?id=<?= htmlspecialchars($lied['id']) ?>">Bearbeiten ...</a></td>
<td><a href="lied_loeschen.php?id=<?= htmlspecialchars($lied['id']) ?>">Löschen ...</a></td>
</tr>
<?php endforeach; ?>
<tr>
<td><input type="text" name="track" placeholder="Track"/></td>
<td><input type="text" name="titel" placeholder="Titel"/></td>
</tr>
</table>
<input type="submit" value="Hinzufügen"/>
</form>
<p><a href="index.php">zur Übersicht</a></p>
</body>
</html>

View File

@@ -0,0 +1,46 @@
<?php
require __DIR__ . '/_application.php';
$db = holeDatenbankVerbindung();
$statement = $db->query("
SELECT
c.id,
c.name AS cdname,
c.erscheinungsjahr,
k.name AS kuenstlername
FROM cds AS c
LEFT JOIN kuenstler AS k ON c.kuenstler_id = k.id
");
$cds = $statement->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mediathek</title>
</head>
<body>
<table>
<tr>
<th>Künstler</th>
<th>Album</th>
<th>Erscheinungsjahr</th>
</tr>
<?php foreach ($cds as $cd): ?>
<tr>
<td><?= htmlspecialchars($cd['kuenstlername']) ?></td>
<td>
<a href="cd.php?id=<?= $cd['id'] ?>">
<?= htmlspecialchars($cd['cdname']) ?>
</a>
</td>
<td><?= htmlspecialchars($cd['erscheinungsjahr']) ?></td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>

View File

@@ -0,0 +1,77 @@
<?php
require __DIR__ . '/_application.php';
$meldungen = [];
if (!isset($_GET['id'])) {
$meldungen[] = 'Bitte geben Sie die ID des Liedes an, das Sie bearbeiten möchten.';
}
$db = holeDatenbankVerbindung();
$liedStatement = $db
->prepare("
SELECT
l.track,
l.titel,
c.id cd_id,
c.name cdname,
k.name kuenstlername
FROM lieder l
LEFT JOIN cds c ON l.cd_id = c.id
LEFT JOIN kuenstler k ON c.kuenstler_id = k.id
WHERE l.id = :lied_id
");
$liedStatement->execute(['lied_id' => $_GET['id']]);
$lied = $liedStatement->fetch(PDO::FETCH_ASSOC);
if (!$lied) {
$meldungen[] = 'Es konnte kein Lied mit der ID ' . htmlspecialchars($_GET['id']) . ' gefunden werden.';
}
if (isset($_POST['aktion'])) {
if ('speichern' === $_POST['aktion']) {
$db
->prepare("UPDATE lieder SET track = :track, titel = :titel WHERE id = :lied_id")
->execute([
'track' => $_POST['track'],
'titel' => $_POST['titel'],
'lied_id' => $_GET['id']
]);
}
header('Location: cd.php?id=' . htmlspecialchars($lied['cd_id']));
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mediathek</title>
</head>
<body>
<?php if (count($meldungen) > 0): ?>
<p>Fehler:</p>
<ul>
<?php foreach ($meldungen as $meldung): ?>
<li><?= htmlspecialchars($meldung) ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<form action="lied_bearbeiten.php?id=<?= htmlspecialchars($_GET['id']) ?>" method="post">
<h1>Lied bearbeiten</h1>
<h2>'<?= htmlspecialchars($lied['cdname']) ?>' (<?= htmlspecialchars($lied['kuenstlername']) ?>)</h2>
<label>Track
<input type="text" name="track" value="<?= htmlspecialchars($lied['track']) ?>"/>
</label>
<label>Titel
<input type="text" name="titel" value="<?= htmlspecialchars($lied['titel']) ?>"/>
</label>
<button type="submit" name="aktion" value="speichern">Speichern</button>
<button type="submit" name="aktion" value="abbrechen">Abbrechen</button>
</form>
</body>
</html>

View File

@@ -0,0 +1,70 @@
<?php
require __DIR__ . '/_application.php';
$meldungen = [];
if (!isset($_GET['id'])) {
$meldungen[] = 'Bitte geben Sie die ID des Liedes an, das Sie löschen möchten.';
}
$db = holeDatenbankVerbindung();
$liedStatement = $db
->prepare("
SELECT
l.track,
l.titel,
c.id cd_id,
c.name cdname,
k.name kuenstlername
FROM lieder l
LEFT JOIN cds c ON l.cd_id = c.id
LEFT JOIN kuenstler k ON c.kuenstler_id = k.id
WHERE l.id = :lied_id
");
$liedStatement->execute(['lied_id' => $_GET['id']]);
$lied = $liedStatement->fetch(PDO::FETCH_ASSOC);
if (!$lied) {
$meldungen[] = 'Es konnte kein Lied mit der ID ' . htmlspecialchars($_GET['id']) . ' gefunden werden.';
}
if (isset($_POST['aktion'])) {
if ('loeschen' === $_POST['aktion']) {
$db->prepare("DELETE FROM lieder WHERE id = :lied_id")->execute(['lied_id' => $_GET['id']]);
}
header('Location: cd.php?id=' . htmlspecialchars($lied['cd_id']));
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mediathek</title>
</head>
<body>
<?php if (count($meldungen) > 0): ?>
<p>Fehler:</p>
<ul>
<?php foreach ($meldungen as $meldung): ?>
<li><?= htmlspecialchars($meldung) ?></li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<form action="lied_loeschen.php?id=<?= htmlspecialchars($_GET['id']) ?>" method="post">
<h1>Lied löschen</h1>
<h2>'<?= htmlspecialchars($lied['cdname']) ?>' (<?= htmlspecialchars($lied['kuenstlername']) ?>)</h2>
<p>
Möchten Sie Track <?= $lied['track'] ?> '<?= htmlspecialchars($lied['titel']) ?>' löschen?<br>
Diese Aktion kann nicht rückgängig gemacht werden.
</p>
<button type="submit" name="aktion" value="loeschen">Löschen!</button>
<button type="submit" name="aktion" value="abbrechen">Abbrechen</button>
</form>
<?php endif; ?>
</body>
</html>