Löschen von mehreren Einträgen aus einer DB-Tabelle

Mit den Checkboxen mehrere Einträge auswählen um diese dann von der DB-Tabelle zu löschen — Hier ein Beispiel mit PDO.

[Bildschirmfoto / Grafik]
 Löschen von mehreren Einträgen aus einer DB-Tabelle

QuelltextKopierenAusblendenZeilen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
// Löschen von mehreren Einträgen aus einer Datenbank

// Verbindung zur Datenbank
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8''root''');
$output '';

// Löschen
if (isset($_POST["id"])) {
 
$params $_POST["id"];
 
$placeholder implode(','array_fill(0count($params), '?'));

 
$stmt $db->prepare("DELETE FROM fruits WHERE id IN (" $placeholder ")");
 if (
$stmt->execute($params)) {
  
$output '<p>Die Daten wurden gelöscht.</p>';
 }
}

// Ausgabe
$stmt $db->query("SELECT id, fruit FROM fruits");
$results $stmt->fetchAll();

foreach (
$results as $result) {
 
$output .= '<label><input type="checkbox" name="id[]" value="' $result["id"] . '"> ' .
  
$result["fruit"] . '</label><br>';
}
?>

<!DOCTYPE html>
<html lang="de">
 <head>
  <meta charset="UTF-8">
  <title>Löschen</title>
 </head>
<body>

<h3>Löschen</h3>

<form method="post">

 <?=$output;?>

 <input type="submit">
</form>

</body>
</html>

Siehe auch: Checkbox (Mehrfachauswahl) und DB-Ausgabe

Tipps

Umstellung von der PHP-Funktion mysql() zu mysqli()
Zur Zeit stellen viele Provider auf PHP 7 um, mit dieser neuen PHP-Version werden viele "alte" Scripte nicht mehr laufen die auf eine Datenbank zugegriffen haben.
Responsives Design
Ob ein großer Monitor, ein Tablet oder Smartphone verwendet wird, das Design der Seite sollte sich automatisch der Größe des Gerätes anpassen.
Lokalen Webserver einrichten und verwenden
Um PHP-Scripte auszuführen benötigt man einen Webserver. Um nun nicht jede Datei zum testen erst per FTP auf seinen Webserver zu laden ist es sinnvoll, sich lokal auf dem Rechner einen sog. lokalen Webserver zu installieren.