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

Kontaktformular - E-Mail mit PHPMailer und SMTP versenden
Manchmal möchte man die E-Mail vom Kontaktformular über dem PHPMailer und SMTP versenden. Weil das aber nicht so einfach ist und bestimmte Einstellungen beachtet werden müssen, stelle ich hier beispielhaft ein PHP-Skript vor.
Grafik als Zeichenkette speichern und wieder als Grafik ausgeben
Grafiken (Bilder) können problemlos als Zeichenkette gespeichert und wieder ausgelesen werden, wie das genau funktioniert und welchen Sinn es hat erfahren Sie hier.
Webseiten schneller machen
Webseitenbesucher sind ungeduldig, um Besucher und Suchmaschinen bei der Stange zu halten, darf Ihre Website keine Zeit verlieren.