Database Project Part 1

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick de Buise

Patrick de Buise

09/01/2013 21:28:08
Quote Anchor link
TUTORIAL deel 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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$mysqli
= new mysqli("localhost", "username", "password", "database");
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    if($stmt = $mysqli->query("SELECT *
                FROM persoon
                LEFT JOIN klas ON persoon.KLAS = klas.ID
                WHERE persoon.TYPE = 0"
)) {
        while($output = $stmt->fetch_array()) {
?>

<tr>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $output["NAAM"]; ?>
</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $output["TEL"]; ?>
</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $output["WOONPLAATS"]; ?>
</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $output["POSTCODE"]; ?>
</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $output["ADRES"]; ?>
</td>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $output["KLAS"]; ?>
</td>
<td><a href="cijfers.php?id=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $output[0]; ?>
">Cijfers</a></td>
</tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
        }
    }

?>


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.
 
PHP hulp

PHP hulp

26/04/2024 18:29:36
 
Keizer Webdesign

Keizer Webdesign

09/01/2013 21:30:32
Quote Anchor link
[c0de][c0de] (0=o) om je code!!!
Gewijzigd op 09/01/2013 21:32:08 door Keizer Webdesign
 
No One

No One

09/01/2013 21:36:13
Quote Anchor link
plus...er is een tutorial sectie waar je je tutorial kan plaatsen :)

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
 
Patrick de Buise

Patrick de Buise

09/01/2013 21:43:03
Quote Anchor link
Is goed zal het ff aanpassen maar voor nu laat ik het ff zo... ik ga eerst ff deel 2 afmaken en dan pas ik gelijk de rest aan
Gewijzigd op 09/01/2013 21:43:27 door Patrick de Buise
 
Keizer Webdesign

Keizer Webdesign

09/01/2013 22:02:01
Quote Anchor link
plaats hem dan wel meteen op de goede plek ;).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.