www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » Web-App mit Datenbankanbindung » Löschen von Datensätzen

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.

Sicherheitsnachfrage vor endgültigen löschen
Sicherheitsnachfrage vor endgültigen löschen
  <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:

Feedback, dass Datensatz gelöscht wurde
Feedback, dass Datensatz gelöscht wurde

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:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe