Database Project Part 1
In deze tutorial gaan we een simpel schoolsysteem opbouwen. Met dit script kunnen we cijfers aan leerlingen koppelen.
Verbinding opzetten
Om te beginnen gaan we eerst een verbinding met de database opzetten. Dit doen we door een nieuwe bestand genaamd 'config.php' aan te maken. Hier plaatsen we de volgende code in.
Code (php)
Bovenstaande code zet een verbinding op met de database. Bovenstaande code kunnen we overal waar we een verbinding met de database nodig hebben includen door de volgende regel code te gebruiken: include("config.php");
Leerlingen
Als eerst laten we een lijst van leerlingen zien. Uit deze lijst kan de leraar per leerling cijfers toevoegen of verwijderen. Om dit voor elkaar te krijgen moeten we een eerst alle leerlingen uit de database ophalen. Dit doen we middels de volgende code:
Code (php)
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><a href="cijfers.php?id=">Cijfers</a></td>
</tr>
Zoals te zien is voeren we eerst een (join) query uit. Hierdoor linken we het juiste veld uit de klassen tabel met het klassen veld uit de persoon tabel, wat een numeriek veld is. Dit levert een gebruikersvriendelijke versie op van de klasnaam (bijvoorbeeld I2A3E, ipv 2).
De rest is vanzelfsprekend, we kunnen alle velden makkelijk opvragen door $output["WOONPLAATS"] .
Cijfers
In het bestand 'cijfers.php' gaan we ervoor zorgen dat we de cijfers van de leerlingen kunnen wijzigen. Zoals te zien is in het 'Leerlingen' voorbeeld geven we het leerlingen ID mee in de URL.
Onderstaande code kijkt na in de database of de ID bestaat.
if($stmt = $mysqli->prepare("SELECT naam FROM persoon WHERE id = ?")) {
$stmt->bind_param("i", $_REQUEST['id']);
$stmt->execute();
$stmt->bind_result($userName);
$stmt->fetch();
if(empty($userName)) { die("Persoon bestaat niet."); }
$stmt->close();
}
Indien de gebruiker niet bestaat, stoppen we met het processen van de rest van de pagina middels die().
Cijfers veranderen
Middels een simpele form kunnen we de cijfers aanpassen. We geven bij het veranderen van een cijfer de waarde 'cid' mee, wat het ID is van het cijfer in de tabel 'cijfers'. Met een query halen we het huidige cijfer uit de database.
Zodra de gebruiker het cijfer heeft aangepast en op submit heeft geklikt voeren we de volgende code uit:
if($stmt = $mysqli->prepare("UPDATE cijfers SET cijfer = ? WHERE id = ?")) {
$stmt->bind_param("ii", $_REQUEST['cijfer'], $_REQUEST['cid']);
$stmt->execute();
$stmt->close();
}
Bovenstaande code update de tabel cijfers. We gebruiken hier de MySQLi prepare functie. De prepare functie vangt SQL-injecties af en zorgt ervoor dat altijd een integer weggeschreven wordt naar de tabel, aangezien het veld een integer is.
Voor zover is deel 1 klaar. In de komende delen gaan we ook het verwijderen van cijfers, aanmaken en wijzigen van klassen en personen (leraren en personen) en meer.
Gewijzigd op 09/01/2013 21:32:08 door Keizer Webdesign
Toevoeging op 09/01/2013 21:37:15:
overigens moet je ze ook aangeven hoe de tabel er uitziet / hoe te maken etc....
en foutafhandeling is verkeerd...geen die gebruiken...
Gewijzigd op 09/01/2013 21:40:13 door No One
Gewijzigd op 09/01/2013 21:43:27 door Patrick de Buise
plaats hem dan wel meteen op de goede plek ;).