Periode 4 · Week 2
Week 2 – UPDATE queries;
Wat leer je deze week?
Vorige week kon je al één specifiek item ophalen uit de database.
Deze week maak je jouw editpagina echt werkend: je gaat bestaande data aanpassen met een UPDATE query.
Je leert hoe formulierdata terug naar de database gaat en waarom een WHERE in een UPDATE query super belangrijk is.
Kernconcepten (in normale mensentaal)
Een UPDATE query werkt eigenlijk als “overschrijven”.
Stel: je hebt een huiswerkapp.
Een gebruiker verandert een opdracht van:
Engels leren
naar:
Engels presentatie voorbereiden
Dan wil je niet een nieuw item maken.
Je wil het bestaande item aanpassen.
Daarom gebeurt de flow ongeveer zo:
gebruiker opent editpagina
↓
formulier wordt ingevuld met bestaande data
↓
gebruiker past iets aan
↓
formulier wordt verstuurd met POST
↓
PHP ontvangt de nieuwe data
↓
UPDATE query draait
↓
database slaat wijziging op
↓
redirect terug naar overzicht
Wat moet je kennen?
1. Formulierdata ontvangen met POST
Uitleg
De gebruiker past data aan in een formulier.
Daarna wordt die nieuwe data verstuurd via POST.
Wat moet je kennen
$_POSTmethod="POST"- veilig uitlezen met
?? ''
Voorbeeld
$title = $_POST['title'] ?? '';
Onthoud: POST gebruik je voor data die iets verandert in je applicatie.
2. Hidden inputs gebruiken
Uitleg
De gebruiker hoeft hetidniet te zien, maar PHP heeft het wel nodig om te weten welk item aangepast moet worden.
Daarom gebruik je een hidden input.
Wat moet je kennen
type="hidden"- id meesturen in een formulier
- data uit een associative array gebruiken
Voorbeeld
<input
type="hidden"
name="id"
value="<?= $item['id'] ?>"
>
Onthoud: Hidden betekent alleen onzichtbaar in de pagina. De waarde wordt nog steeds meegestuurd.
3. Een UPDATE query schrijven
Uitleg
Met UPDATE pas je bestaande data aan in de database.
Wat moet je kennen
UPDATESETWHERE- prepared statements
- placeholders
?
Voorbeeld
$stmt = $pdo->prepare("
UPDATE items
SET title = ?
WHERE id = ?
");
$stmt->execute([$title, $id]);
Onthoud:
SETbepaalt wat aangepast wordt.WHEREbepaalt WELKE rij aangepast wordt.
4. Waarom WHERE zo belangrijk is
Uitleg
ZonderWHEREweet de database niet welke rij aangepast moet worden.
Dat betekent dat ALLE rijen aangepast kunnen worden.
Ja. Echt allemaal 😭
Voorbeeld
❌ Zonder WHERE
UPDATE items
SET title = 'Kaasbroodje'
Resultaat:
ALLE titels worden:
Kaasbroodje
✅ Met WHERE
UPDATE items
SET title = 'Kaasbroodje'
WHERE id = 3
Resultaat:
Alleen item 3 verandert.
Onthoud: Een UPDATE zonder WHERE is gevaarlijk.
5. Redirect gebruiken na UPDATE
Uitleg
Na een succesvolle update stuur je de gebruiker meestal terug naar het overzicht.
Wat moet je kennen
header()exit- redirect flow
Voorbeeld
header('Location: index.php');
exit;
Onthoud: Zonder redirect kan een refresh dezelfde update opnieuw uitvoeren.
Veelgemaakte fouten (met voorbeelden)
1. WHERE vergeten in de UPDATE query
Dit is waarschijnlijk de gevaarlijkste fout van deze week.
Fout
UPDATE items
SET title = ?
Beter
UPDATE items
SET title = ?
WHERE id = ?
2. Het id niet meesturen in het formulier
Dan weet PHP niet welk item aangepast moet worden.
Fout
<input type="text" name="title">
Beter
<input
type="hidden"
name="id"
value="<?= $item['id'] ?>"
>
3. POST gebruiken zonder fallback
Als een veld ontbreekt, krijg je warnings.
Fout
$title = $_POST['title'];
Beter
$title = $_POST['title'] ?? '';
4. De placeholders in verkeerde volgorde zetten
De volgorde van de array moet overeenkomen met de query.
Fout
$stmt->execute([$id, $title]);
Beter
$stmt->execute([$title, $id]);
5. Geen redirect gebruiken na UPDATE
Dan kan een refresh dezelfde query opnieuw uitvoeren.
Fout
echo "Opgeslagen!";
Beter
header('Location: index.php');
exit;
Snippets
POST-data uitlezen
$title = $_POST['title'] ?? '';
Hidden input maken
<input
type="hidden"
name="id"
value="<?= $item['id'] ?>"
>
UPDATE query uitvoeren
$stmt = $pdo->prepare("
UPDATE items
SET title = ?
WHERE id = ?
");
$stmt->execute([$title, $id]);
Redirect gebruiken
header('Location: index.php');
exit;
Controleren of formulier verstuurd is
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
}
Video (coming soon)
Video komt eraan
Zodra de uitlegvideo beschikbaar is, wordt alleen de YouTube-ID vervangen.