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 met require.

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';
?>
Onthoud:

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 via require, 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);
?>
Onthoud:

PDO::FETCH_ASSOC zorgt dat je nette keys krijgt zoals 'title'.

3. Resultaten tonen met foreach

Uitleg
De opgehaalde resultaten zitten in een array.
Met foreach loop 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>";
Onthoud:

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

Video

Uitleg volgt hier.