Periode 4 · Week 3
Week 3 – DELETE;
Wat leer je deze week?
In periode 3 kon je items toevoegen en tonen.
In week 2 leerde je hoe je bestaande items aanpast.
Deze week maak je jouw CRUD-app compleet door items te verwijderen uit de database.
Je leert hoe een deleteflow werkt, waarom een WHERE super belangrijk blijft en waarom delete-acties best gevaarlijk kunnen zijn.
Kernconcepten (in normale mensentaal)
DELETE betekent eigenlijk:
“haal deze rij weg uit de database.”
Stel: iemand heeft per ongeluk een dubbele huiswerkopdracht toegevoegd.
Dan wil je dat item kunnen verwijderen.
Dat werkt meestal zo:
gebruiker klikt op verwijderen
↓
id gaat mee in de URL
↓
PHP leest het id uit
↓
DELETE query draait
↓
item verdwijnt uit database
↓
redirect terug naar overzicht
Belangrijk:
een DELETE query verwijdert data echt uit de database.
Dus:
- geen undo knop
- geen prullenbak
- gone = gone 😭
Wat moet je kennen?
1. Een delete link maken
Uitleg
Op je overzichtspagina toon je meerdere items.
Bij elk item maak je een link waarmee je het juiste id meestuurt.
Wat moet je kennen
<a href="">?id=...- associative arrays uitlezen
Voorbeeld
<a href="delete.php?id=<?= $item['id'] ?>">
Verwijderen
</a>
Onthoud: Zonder id weet PHP niet welk item verwijderd moet worden.
2. Het id uitlezen met GET
Uitleg
Het id komt binnen via de URL.
PHP leest dit uit met$_GET.
Wat moet je kennen
$_GET?? ''- query strings
Voorbeeld
$id = $_GET['id'] ?? '';
Onthoud: GET-data staat in de URL en is zichtbaar voor de gebruiker.
3. Een DELETE query schrijven
Uitleg
Met DELETE verwijder je een rij uit een database.
Wat moet je kennen
DELETE FROMWHERE- prepared statements
- placeholders
?
Voorbeeld
$stmt = $pdo->prepare("
DELETE FROM items
WHERE id = ?
");
$stmt->execute([$id]);
Onthoud:
WHEREbepaalt welke rij verwijderd wordt.
4. Waarom WHERE levensreddend is
Uitleg
ZonderWHEREverwijdert de database ALLE rijen uit de tabel.
Ja. Echt alles 😭
Voorbeeld
❌ Zonder WHERE
DELETE FROM items
Resultaat:
De hele tabel is leeg.
✅ Met WHERE
DELETE FROM items
WHERE id = 3
Resultaat:
Alleen item 3 wordt verwijderd.
Onthoud: Een DELETE zonder WHERE is gevaarlijk.
5. Redirect gebruiken na DELETE
Uitleg
Na het verwijderen stuur je de gebruiker meestal terug naar het overzicht.
Wat moet je kennen
header()exit- redirect flow
Voorbeeld
header('Location: index.php');
exit;
Onthoud: De gebruiker hoeft niet op een lege deletepagina te blijven hangen.
Veelgemaakte fouten (met voorbeelden)
1. DELETE zonder WHERE gebruiken
Dit is de grootste ramp van deze week 😭
Fout
DELETE FROM items
Beter
DELETE FROM items
WHERE id = ?
2. Het id niet meesturen in de link
Dan weet PHP niet welk item verwijderd moet worden.
Fout
<a href="delete.php">
Verwijderen
</a>
Beter
<a href="delete.php?id=<?= $item['id'] ?>">
Verwijderen
</a>
3. $_GET['id'] gebruiken zonder fallback
Dan krijg je warnings als het id ontbreekt.
Fout
$id = $_GET['id'];
Beter
$id = $_GET['id'] ?? '';
4. De query uitvoeren zonder prepare
Directe queries zijn minder veilig en moeilijker uitbreidbaar.
Fout
$pdo->query("DELETE FROM items WHERE id = $id");
Beter
$stmt = $pdo->prepare("
DELETE FROM items
WHERE id = ?
");
$stmt->execute([$id]);
5. Geen redirect gebruiken na DELETE
Dan blijft de gebruiker op een losse deletepagina hangen.
Fout
echo "Verwijderd!";
Beter
header('Location: index.php');
exit;
Snippets
ID uitlezen uit URL
$id = $_GET['id'] ?? '';
Delete link maken
<a href="delete.php?id=<?= $item['id'] ?>">
Verwijderen
</a>
DELETE query uitvoeren
$stmt = $pdo->prepare("
DELETE FROM items
WHERE id = ?
");
$stmt->execute([$id]);
Redirect gebruiken
header('Location: index.php');
exit;
Checken of item bestaat
if (!$item) {
echo "Item niet gevonden.";
exit;
}
Video (coming soon)
Video komt eraan
Zodra de uitlegvideo beschikbaar is, wordt alleen de YouTube-ID vervangen.