<?php
/*
Staat de gebruiker toe om nieuwe records toe te voegen te bewerken
*/
// connect to the database
include("connect-db.php");
// Maakt nieuw/edit record formulier
function renderForm($klantnummer = '', $bedrijfsnaam ='', $error = '', $id = '')
{ ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>
<?php if ($id != '') { echo "Edit Record"; } else { echo "New Record"; } ?>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<h1><?php if ($id != '') { echo "Edit Record"; } else { echo "New Record"; } ?></h1>
<?php if ($error != '') {
echo "<div style='padding:4px; border:1px solid red; color:red'>" . $error
. "</div>";
} ?>
<form action="" method="post">
<div>
<?php if ($id != '') { ?>
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<p>ID: <?php echo $id; ?></p>
<?php } ?>
<strong>Klantnummer: *</strong> <input type="text" name="klantnummer"
value="<?php echo $klantnummer; ?>"/><br/>
<strong>Bedrijfsnaam: *</strong> <input type="text" name="bedrijfsnaam"
value="<?php echo $bedrijfsnaam; ?>"/>
<p>* required</p>
<input type="submit" name="submit" value="Submit" />
</div>
</form>
</body>
</html>
<?php }
/*
BEWERK RECORD
*/
// Wanneer de 'id' variabel is ingesteld in de URL, weten we dat we een record moeten aanpassen
if (isset($_GET['id']))
{
// Wanneer de submitknop word ingedrukt word het formulier verwerkt
if (isset($_POST['submit']))
{
// Zorgt ervoor dat de 'id' geldig is
if (is_numeric($_POST['id']))
{
// verkrijg variabelen van URL/formulier
$id = $_POST['id'];
$klantnummer = htmlentities($_POST['klantnummer'], ENT_QUOTES);
$bedrijfsnaam = htmlentities($_POST['bedrijfsnaam'], ENT_QUOTES);
{
// update de database
if ($stmt = $mysqli->prepare("UPDATE klanten SET klantnummer = ?, bedrijfsnaam = ?
WHERE id=?"))
{
$stmt->bind_param("ssi", $klantnummer, $lastname, $id);
$stmt->execute();
$stmt->close();
}
// toont foutmelding indien nodig
else
{
echo "ERROR: could not prepare SQL statement.";
}
// redirect na submit van formulier
header("Location: view.php");
}
}
// bij ongeldige 'id' komt een foutmelding
else
{
echo "Error!";
}
}
// Indien het formulier niet verstuurd is word de database en het formulier weergegeven
else
{
// zorgt dat de 'id' geldig is
if (is_numeric($_GET['id']) && $_GET['id'] > 0)
{
// verkrijg 'id' van URL
$id = $_GET['id'];
// verkrijg de records uit de database
if($stmt = $mysqli->prepare("SELECT * FROM klanten WHERE id=?"))
{
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($id, $klantnummer, $bedrijfsnaam);
$stmt->fetch();
// toon het formulier
renderForm($klantnummer, $bedrijfsnaam, NULL, $id);
$stmt->close();
}
// toon een error wanneer de query een error heeft
else
{
echo "Error: could not prepare SQL statement";
}
}
// wanneer het 'id' ongeldig is word de gebruiker naar view.php doorgestuurd
else
{
header("Location: view.php");
}
}
}
/*
NIEUW RECORD
*/
// wanneer geen 'id' is ingesteld volgt een nieuwe invoer
else
{
// proces het formlier na submit
if (isset($_POST['submit']))
{
// verkrijg formulierdata
$klantnummer = htmlentities($_POST['klantnummer'], ENT_QUOTES);
$bedrijfsnaam = htmlentities($_POST['bedrijfsnaam'], ENT_QUOTES);
{
// insert the new record into the database
if ($stmt = $mysqli->prepare("INSERT klanten (klantnummer, bedrijfsnaam) VALUES (?, ?)"))
{
$stmt->bind_param("ss", $klantnummer, $bedrijfsnaam);
$stmt->execute();
$stmt->close();
}
// Toon een foutmelding indien nodig
else
{
echo "ERROR: Could not prepare SQL statement.";
}
// stuur gebruiker door
header("Location: view.php");
}
}
// wanneer geen formulier is ingediend word de database weergegeven
else
{
renderForm();
}
}
// sluit mysqli verbinding
$mysqli->close();
?>
1.619 views
Na mijn pogingen (zoals sommige nu wel weten) die minder succesvol waren in mysql heb ik nu een add-edit-del script in mysqli zoals mij aangeraden werd. Ik heb nu 2 velden gemaakt zodat ik de rest daarna kan toevoegen als dit goed werkt maar alles werkt behalve 1 ding. Na het toevoegen van data kan ik op edit klikken en dan kan ik het bewerkten. Echter als ik daarna op versturen druk (zonder of met bewerken) is het veld bedrijfsnaam plotseling leeg. Ik kan niet vinden waarom dit is..