Löschen von Datensätzen
In unserer Detailübersicht haben wir bereits den Dateinamen „loeschen.php“ für die Löschmöglichkeit festgelegt.
Bevor wir den Datensatz aber endgültig löschen, fragen wir noch einmal zur Sicherheit nach. Zumal ein Löschen von vergangenen Terminen auch nicht unbedingt sinnvoll ist. Diese werden automatisch nicht mehr angezeigt und wir können diese im Archiv uns anzeigen lassen.
Für das Löschen benötigen wir fast identisch die Datei von der Datei „details.php“.
Hier alles übernommen, was wir benötigen:
<?php
session_start();
require_once('../db.php');
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Mike Coustic - Gitarrist</title>
<meta name="description" content="Veranstaltungstermine von Mike Coustic. Zusätzlich Hörbeispiele.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<!-- eigene CSS-Anweisungen -->
<link href="design.css" rel="stylesheet">
</head>
<body>
<!-- Hier kommt die loeschen -Seite -->
<div data-role="page" id="loeschen" data-theme="b">
<?php anzeige_kopfbereich('termine', false); ?>
<div data-role="main" class="ui-content">
<?php
echo '<h1>Soll der folgende Termin WIRKLICH gelöscht werden?</h1>';
$id = (INT) $_REQUEST['id'];
$sql = "SELECT * FROM termine WHERE id = '$id' ";
if ($erg = $db->query($sql)) {
$datensatz = $erg->fetch_object();
}
echo '<p><i>Datum:</i><br>';
echo date("d.m.Y", strtotime($datensatz->datum));
echo '</p>';
echo '<p><i>Beginn:</i><br>';
echo $datensatz->beginn;
echo '</p>';
echo '<p><i>Ort:</i><br>';
echo $datensatz->ort;
echo '</p>';
echo '<p><i>Anmerkung:</i><br>';
echo $datensatz->anmerkung;
echo '</p>';
?>
</div>
<?php anzeige_fussbereich('', false); ?>
</div>
</body>
</html>
Sicherheitshalber lassen wir unseren Inhalt nur anzeigen, wenn man korrekt eingeloggt ist – ansonsten kommt die entsprechende Meldung.
<!-- Hier kommt die loeschen-Seite -->
<div data-role="page" id="loeschen" data-theme="b">
<?php anzeige_kopfbereich('termine', false); ?>
<div data-role="main" class="ui-content">
<?php
if ( isset($_SESSION['eingeloggt']) )
{
echo '<h1>Soll der folgende Termin WIRKLICH gelöscht werden?</h1>';
$id = (INT) $_REQUEST['id'];
$sql = "SELECT * FROM termine WHERE id = '$id' ";
if ($erg = $db->query($sql)) {
$datensatz = $erg->fetch_object();
}
echo '<p><i>Datum:</i><br>';
echo date("d.m.Y", strtotime($datensatz->datum));
echo '</p>';
echo '<p><i>Beginn:</i><br>';
echo $datensatz->beginn;
echo '</p>';
echo '<p><i>Ort:</i><br>';
echo $datensatz->ort;
echo '</p>';
echo '<p><i>Anmerkung:</i><br>';
echo $datensatz->anmerkung;
echo '</p>';
}
else
{
echo "<h1>Bitte einloggen</h1>";
}
?>
</div>
<?php anzeige_fussbereich('', false); ?>
</div>
Wir ergänzen diese den bisherigen Stand um einen Link, der angeklickt werden muss, bevor der Datensatz dann endgültig gelöscht wird.

<div data-role="main" class="ui-content">
<?php
if ( isset($_SESSION['eingeloggt']) )
{
echo '<h1>Soll der folgende Termin WIRKLICH gelöscht werden?</h1>';
$id = (INT) $_REQUEST['id'];
$sql = "SELECT * FROM termine WHERE id = '$id' ";
if ($erg = $db->query($sql)) {
$datensatz = $erg->fetch_object();
}
echo '<p>Jetzt <a href="loeschen.php?id='. $id .'&aktion=loeschen">';
echo date("d.m.Y", strtotime($datensatz->datum));
echo ' endgültig löschen</a> - bitte nicht kopflos nutzen!';
echo '<p><i>Datum:</i><br>';
echo date("d.m.Y", strtotime($datensatz->datum));
echo '</p>';
echo '<p><i>Beginn:</i><br>';
echo $datensatz->beginn;
echo '</p>';
echo '<p><i>Ort:</i><br>';
echo $datensatz->ort;
echo '</p>';
echo '<p><i>Anmerkung:</i><br>';
echo $datensatz->anmerkung;
echo '</p>';
}
else
{
echo "<h1>Bitte einloggen</h1>";
}
?>
</div>
Und nun der das Löschen selber:

Und der dazugehörige Code:
<div data-role="main" class="ui-content">
<?php
if ( isset($_SESSION['eingeloggt']) )
{
if ( isset($_GET['aktion']) and $_GET['aktion'] == 'loeschen'
and $_GET['id'] > 0
)
{
$id = (INT) $_GET['id'];
$loeschen = $db->prepare("DELETE FROM termine WHERE id=(?) LIMIT 1");
$loeschen->bind_param('i', $id);
if ($loeschen->execute()) {
echo "<h1>Datensatz Nr. ". $id." wurde gelöscht</h1>";
}
}
else
{
echo '<h1>Soll der folgende Termin WIRKLICH gelöscht werden?</h1>';
$id = (INT) $_REQUEST['id'];
$sql = "SELECT * FROM termine WHERE id = '$id' ";
if ($erg = $db->query($sql)) {
$datensatz = $erg->fetch_object();
}
echo '<p>Jetzt <a href="loeschen.php?id='. $id .'&aktion=loeschen">';
echo date("d.m.Y", strtotime($datensatz->datum));
echo ' endgültig löschen</a> - bitte nicht kopflos nutzen!';
echo '<p><i>Datum:</i><br>';
echo date("d.m.Y", strtotime($datensatz->datum));
echo '</p>';
echo '<p><i>Beginn:</i><br>';
echo $datensatz->beginn;
echo '</p>';
echo '<p><i>Ort:</i><br>';
echo $datensatz->ort;
echo '</p>';
echo '<p><i>Anmerkung:</i><br>';
echo $datensatz->anmerkung;
echo '</p>';
}
}
else
{
echo "<h1>Bitte einloggen</h1>";
}
?>
</div>
Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).
Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button: