Hallo,
Ik ben momenteel bezig met een vacaturedatabase. In het beheerdergedeelte wil ik de beheerder de mogelijkheid geven om bv. docenten toe te voegen, te bewerken en te verwijderen. Dit laatste werkt, echter het toevoegen en bewerken wilt maar niet lukken. Ik heb een code overgenomen van een oefenopdracht maar ik denk dat ik iets in de volgorde verkeerd doe.
Vanaf regel 126 gaat het dus helemaal goed, dit is het verwijder gedeelte. Echter als ik wil bewerken dan haalt het de juiste record aan, echter als ik het wil wijzigen worden de velden leeg en geeft het steeds aan, dat ik een naam moet invullen, terwijl ik een naam invul. Het toevoegen lukt me al helemaal niet.
Dit is de code:
<?php
// STANDAARD LINK DIE IN DEZE MODULE GEBRUIKT WORDT
$link = 'admin.php?page=docentenbeheer';
// IS ER EEN EDIT VAN EEN RECORD GAANDE?
if($_GET['edit']){
// WIJS AAN $edit HET ID VAN HET BEWERKTE RECORD TOE
$query = "SELECT * FROM Docenten WHERE DocentID = '".mysql_real_escape_string($_GET['edit'])."'";
$result = mysql_query($query);
// IS ER EEN RESULTAAT? DAN PAS DINGEN GAAN BEWERKEN
if(mysql_num_rows($result) == 1){
// $currentRecord BEVAT RECORD VAN BEWERKTE ITEM
$currentRecord = mysql_fetch_array($result);
// ZET HET ID VAN HET HUIDIGE ITEM IN #edit
$edit = $currentRecord['DocentID'];
// IS ER GEEN FOUTMELDING OP EEN VORIGE POST? DAN LAADT DE DATA VAN HET HUIDITE RECORD IN DE SESSION VARIABELEN
// ALS ER EEN FOUTMELDING GETOOND MOET WORDEN, MOET HET FORMULIER GEVULD WORDEN MET DE DATA DIE DE BEZOEKER HEEFT INGEVULD
if(!$_SESSION['post']['errors']){
$_SESSION['post'] = array();
$_SESSION['post']['data'] = array();
$_SESSION['post']['data']['Naam'] = $currentRecord['Naam'];
$_SESSION['post']['data']['Email'] = $currentRecord['Email'];
}
// ZET DE GET VARIABELE OOK IN DE STANDAARD LINK
$link .= '&edit='.$edit;
}
// IS HET FORMULIER GESUBMIT
if($_SERVER['REQUEST_METHOD'] === 'POST'){
// LEGE SESSION VARIABELE AANMAKEN OM BEPAALDE INFO TE ONTHOUDEN VOOR TERUGKOPPELING
$_SESSION['post'] = array();
$_SESSION['post']['data'] = $_POST;
// CONTROLEER OP FOUTEN
if(strlen($_POST['Naam']) == 0){
$_SESSION['post']['errors'][] = 'Vul een naam in!';
}elseif(strlen($_POST['Naam']) > 50){
$_SESSION['post']['errors'][] = 'Vul een kortere naam in!';
}
// GEEN FOUTEN GEMAAKT?
if(count($_SESSION['post']['errors']) == 0){
if($edit){
// UPDATE DOCENT
$query = "
UPDATE
Docenten
SET
Naam = '".mysql_real_escape_string($_POST['Naam'])."',
Email = '".mysql_real_escape_string($_POST['Email'])."',
WHERE
DocentID = '".mysql_real_escape_string($edit)."'
";
}else{
// VOEG DOCENT TOE
$query = "INSERT INTO Docenten (Naam, Email)
VALUES ('".mysql_real_escape_string($_POST['Naam'])."',
'".mysql_real_escape_string($_POST['Email'])."',')";
}
mysql_query($query);
// SESSION DATA NIET MEER NODIG WANT DATA IS JUIST INGEVULD
unset($_SESSION['post']);
// REDIRECT BEZOEKER NAAR LIJST
header("location: admin.php?page=docentenbeheer");
exit();
}else{
// REDIRECT BEZOEKER TERUG NAAR FORMULIER OMDAT ER EEN FOUT GEMAAKT IS
header("location: " . $link);
exit();
}
}else{
// IS ER EEN FOUTMELDING? TOON DEZE!
if($_SESSION['post']['errors']){
$html .= '<div id="error">'.implode('<br />', $_SESSION['post']['errors']).'</div>';
}
// PAS HET LABEL VAN DE KNOP AAN OM AAN TE GEVEN OF HET EEN EDIT OF NIEUWE RECORD BETREFT
if($edit){
$knopLabel = 'Docent Bewerken';
}else{
$knopLabel = 'Docent Toevoegen';
}
// MAAK HET FORMULIER OP
$html .= '
<h2>Formulier:</h2>
<form method="POST" action="'.$link.'">
Naam: <input type="text" name="naam" value="'.html($_SESSION['post']['data']['Naam']).'" /><br />
Email: <input type="text" name="naam" value="'.html($_SESSION['post']['data']['Email']).'" /><br />
<input type="submit" value="'.$knopLabel.'" />
</form>';
// ALS JE IN EEN STRING EEN IF CONDITIE WILT UITVOEREN, KUN JE EEN VERKORTE NOTITIE GEBRUIKEN
/*
$html = '<input type="submit" value="'.($edit ? 'Vak Bewerken' : 'Vak Toevoegen').'" />';
*/
// VERWIJDER (EVENTUELE) SESSION VARIABELE
unset($_SESSION['post']);
}
}
else{
// SELECTEER ALLE DOCENTEN
$query = "SELECT
Docenten.DocentID,
Docenten.Naam,
Docenten.Email
FROM
Docenten";
$result = mysql_query($query) or die(mysql_error());
// GENEREER EEN HTML TABEL MET DE GEWENSTE KOLOMMEN UIT DE QUERY
$html = '<div id="opdrachten_lijst">
<h2>Docentenbeheer</h2>
<table border="1" cellpadding="2" cellspacing="2"><tr class="red">
<td>#</td>
<td>Naam</td>
<td>Email</td>
<td>Edit</td>
<td>Delete</td>
</tr>';
while($record = mysql_fetch_assoc($result)){
$html .= '
<tr>
<td>'.$record['DocentID'].'</td>
<td>'.$record['Naam'].'</td>
<td>'.$record['Email'].'</td>
<td><a href="admin.php?page=docentenbeheer&edit='.$record['DocentID'].'">edit</a></td>
<td><a class="confirm" href="admin.php?delete='.$record['DocentID'].'">delete</a></td>
</tr>';
}
$html .= '</table>
<a href="admin.php?page=docentenbeheer&add=1">Docent toevoegen</a></div>
';
}
// IS ER EEN DELETE?
if($_GET['delete']){
// IS ER AKKOORD GEGEVEN?
if($_GET['akkoord']){
// VERWIJDER HET RECORD
$query = "DELETE FROM Docenten WHERE DocentID='".mysql_real_escape_string($_GET['delete'])."'";
$result = mysql_query($query);
// REDIRECT BEZOEKER
header("location: admin.php?page=docentenbeheer");
exit();
}else{
// NOG GEEN AKKOORD, GEEF PHP BEVESTIGINGSLINK IN HTML
$html .= '<a href="admin.php?delete='.$_GET['delete'].'&akkoord=1">Weet u het zeker?</a>';
}
}
?>
1.055 views