Voorkennis
- Basiskennis HTML
- Formulier maken met HTML
- Werkend formulier met PHP
- Connectie maken met een database-server en een tabel daarbinnen
- Gegevens van de databasetabel ophalen en dit tonen met PHP en SQL
Dit ga je leren
- Basiskennis PHP verder uitbreiden
- Gegevens aanpassen in een databasetabel met PHP
- Een redirect maken naar een andere weblocatie

Opdracht
Database
- Gebruik de eerder gemaakte database uit de vorige opdracht
- Vul zo nodig extra nieuwe records toe (rijen met gegevens)
PHP - Voeg aan het bestand
index.php
een link toe naarcontent/update.php
en het woord 'update' voor elke rij gegevens in de HTML-tabel. - De link moet ook dynamisch voor elke rij het ID meekrijgen;
$content.= '<a href="content/update.php?id='.$row['id'].'">update<a>';
- Voeg aan het bestand
content/update.php
een formulier toe zoals bij content/add.php. Neem zo nodig het formulier.
$content = '<form action="" method="post">';
$content .= '<input>';
$content .= '</form>';
echo $content;
- Haal alle gegevens van de geselecteerde rij op. Controller ook of de get-waarde van id een numerieke waarde heeft.
$sql = "SELECT * FROM products WHERE `id` =".$_GET['id'].'"';
- De ontvangen gegevens uit de SELECT query worden in de
value
attribuut van elke input-tag geplaatst;
$content .= '<label>Name</label> <input type="text" value="'.$_POST['name'].'">';
- Kopieer de basis code onder "procedureel" van W3schools
- De update-code staat in een IF-statement en wordt alleen uitgevoerd als de submit-knop is geklikt.
Dus alle post-waarden zijn verstuurd (ook de submit-knop waarde is ontvangen)
! empty( $_POST['submit'] )
- Zorg dat de code komt te staan in het content/update.php bestand
- Verwijder de regel
mysqli_close($conn);
- Beijk en bestudeer de code door en probeer te begrijpen wat er gebeurt. Anders vraag om uitleg !
- Pas de connectie gegevens aan zodat deze kloppen
- Pas de SQL-query (string tekst) aan zodat deze past bij jouw tabelnaam en structuur
- De update-code staat in een IF-statement en wordt alleen uitgevoerd als de submit-knop is geklikt.
Dus alle post-waarden zijn verstuurd (ook de submit-knop waarde is ontvangen)
$sql = 'UPDATE products
SET `name`= "'.$_POST['name'].'", `birth`= "'.$_POST['birth'].'"
WHERE `id` =".$_GET['id'].'"';
- Als de update-query succesvol is, krijg je een
true
terug. Geef een redirect naar het bestandcontent/select.php
header("location: ../map/index.php");
Op te leveren
- Een link waarin het ID van een record worden verstuurd met HTML
- PHP-code die een connectie maken met de database
- Een formulier met daarin de oude gegevens vanuit de databasetabel-record worden getoond.
- PHP-code waarmee data met SQL in een databasetabel worden opgehaald.
- PHP-code waarmee data met SQL in een databasetabel worden aangepast.
Evaluatie
Vraag om een code-review om feedback op jouw aanpak en tips voor best-practices te krijgen.