Week 3 – Database & READ;
In week 3 leer je hoe je data ophaalt uit een database en toont op je pagina.
Dit is de READ-kant van je mini-applicatie.
Wat moet je kennen (samenvatting)
- PDO connectie maken
- Databaseconnectie in een apart bestand zetten
- SELECT query uitvoeren
fetchAll(PDO::FETCH_ASSOC)gebruiken- Resultaten opslaan in een array
- Resultaten tonen met
foreach - Data en HTML combineren
1. PDO connectie
Uitleg
Met PDO maak je een verbinding met je database.
Deze connectie gebruik je om queries uit te voeren.
In een echt project zet je deze connectie in een apart bestand (bijv.includes/db.php) en laad je die in metrequire.
Wat moet je kennen
new PDO(...)- Charset
utf8mb4 - Error mode instellen
require 'includes/db.php';
Voorbeeld (includes/db.php)
<?php
$pdo = new PDO(
"mysql:host=localhost;dbname=app;charset=utf8mb4",
"root",
""
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Voorbeeld (index.php)
<?php
require 'includes/db.php';
?>
Zet je databaseconnectie in één bestand en hergebruik die.
2. SELECT query uitvoeren
Uitleg
Met een SELECT query haal je data op uit je database.
Eerst zorg je dat je connectie beschikbaar is viarequire, daarna voer je de query uit.
Wat moet je kennen
$pdo->query()- Resultaat opslaan in
$stmt fetchAll(PDO::FETCH_ASSOC)
Voorbeeld (index.php)
<?php
require 'includes/db.php';
$stmt = $pdo->query("SELECT id, title FROM items");
$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
PDO::FETCH_ASSOC zorgt dat je nette keys krijgt zoals 'title'.
3. Resultaten tonen met foreach
Uitleg
De opgehaalde resultaten zitten in een array.
Metforeachloop je er doorheen en maak je HTML.
Wat moet je kennen
foreach ($items as $item)$item['title']gebruiken
Voorbeeld
echo "<ul>";
foreach ($items as $item) {
echo "<li>" . $item['title'] . "</li>";
}
echo "</ul>";
Database → array → HTML.
Veelgemaakte fouten (kort)
1. Geen FETCH_ASSOC gebruiken
$items = $stmt->fetchAll();
echo $items[0][0];
$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo $items[0]['title'];
2. foreach verkeerd gebruiken
foreach ($items as $title) {
}
foreach ($items as $item) {
echo $item['title'];
}
3. Connectie niet apart zetten
❌ Databasecode in elk bestand herhalen
✅ Eén keer in includes/db.php zetten en require gebruiken