Ik heb een script gemaakt waarbij je je bmi kan berekenen, je feedback krijgt en je gegevens dan toegevoegd zouden moeten worden aan de database. Bij dat laatste zit ik strop en ik kan niet vinden waar de fout ligt. Laat ik het stukje over de feedback weg, lukt toevoegen wel. Wil ik het toevoegen erbij, dan komt er geen feedback meer. De combinatie van en feedback en toevoegen lukt dus niet.
Zou iemand mij op weg kunnen zetten aub? Alvast heel erg bedankt!
Mijn index-bestand :
<?php
include 'includes/config.inc.php';
include 'includes/functies.inc.php';
include 'includes/foutmeldingen.inc.php';
$query = 'SELECT * FROM gegevens;';
$stmt = $conn->prepare($query);
$stmt->execute();
$gegevens = $stmt->fetchALL();
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> BMI-gegevens</title>
<link rel="stylesheet" type="text/css" href="css/opmaak.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
</head>
<body>
<h1>bereken jouw bmi</h1>
<h2>vul onderstaand formulier in om je bmi te berekenen</h2>
<form method="post">
<p>
<label for="naam">Naam</label>
<input type="text" id="naam" name="naam"
value="<?php if(!empty($_POST['naam'])) { print $_POST['naam']; } ?>" required>
</p>
<p>
<label for="lengte">Ik meet</label>
<input type="text" name="lengte" id="lengte"
value="<?php if(!empty($_POST['lengte'])) { print $_POST['lengte']; } ?>" required> cm.
</p>
<p>
<label for="gewicht">Ik weeg</label>
<input type="text" name="gewicht" id="gewicht" required
value="<?php if(!empty($_POST['gewicht'])) { print $_POST['gewicht']; } ?>"> kg.
</p>
<input type="submit" name="submit" value="Bereken mijn bmi" id="verzenden">
</form>
<div class="feedback">
<?php
if($_POST) {
if(empty($error)){
print "Hallo" . " " . $data['naam'] . "!";
print "<p>Je BMI bedraagt " . bereken_bmi($lengte, $gewicht) . ".</p>";
print "<p>" . feedback($bmi) . "!</p>";
} elseif (!empty($error)){
print "Je hebt niet alles (correct) ingevuld :";
foreach ($error as $error) {
print "<p>" . $error . "</p>";
}
}
}
?>
</div>
<table>
<tr>
<th>Datum</th>
<th>Naam</th>
<th>Lengte</th>
<th>Gewicht</th>
<th>Verwijder</th>
</tr>
<?php foreach($gegevens as $data): ?>
<tr>
<td><?php echo date('d-m-Y')?></td>
<td><?php print $data ['naam']?></td>
<td><?php print $data ['lengte']?></td>
<td><?php print $data ['gewicht']?></td>
<td><a href="verwijderen.php?id=<?php print $data['id'] ?>"><i class="fa fa-minus-circle"></i></a> </td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
Mijn config.inc bestand :
<?php
$dbUser= 'root';
$dbPass = 'root';
$dbName = 'bmi';
$conn = new PDO("mysql:host=localhost;dbname=$dbName", $dbUser, $dbPass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>
[b]Mijn functies-bestand : [/b]
<?php
function bereken_bmi($lengte, $gewicht) {
$lengte = $_POST['lengte'];
$gewicht = $_POST['gewicht'];
$bmi = $gewicht / (($lengte / 100) * ($lengte / 100));
return $bmi;
}
function feedback($bmi){
$lengte = $_POST['lengte'];
$gewicht = $_POST['gewicht'];
$bmi = $gewicht / (($lengte / 100) * ($lengte / 100));
if($bmi < 18){
$message = "je bent te mager";
return $message;
} elseif ($bmi >= 18 && $bmi <= 25){
$message = "je hebt een normaal gewicht";
return $message;
} elseif ($bmi > 25){
$message = "je hebt overgewicht";
return $message;
}
}
?>
En mijn foutmeldingen-bestand :
<?php
$error=array();
$form_verzonden = false;
$data = [
'lengte'=>'',
'gewicht'=>'',
'naam'=>''
];
if($_POST){
$data = $_POST;
if(empty($_POST['naam'])) {
$error['naam'] = "Het ingeven van je naam is verplicht!";
} elseif (!preg_match("/^[a-zA-Z ]*$/", $_POST['naam'])) {
$error['naam'] = "De ingegeven naam is niet correct. Enkel letters en spaties kunnen gebruikt worden!";
}
if(empty($_POST['lengte'])) {
$error['lengte'] = "Het ingeven van je lengte is verplicht!";
} elseif (!preg_match("/^[0-9]*$/", $_POST['lengte'])) {
$error['lengte'] = "Je ingegeven lengte kan alleen cijfers bevatten!";
} elseif (strlen ($_POST['lengte'])>3 || strlen ($_POST['lengte'])<2){
$error['lengte'] = "Je ingegeven lengte moet minimum 2 en maximum 3 cijfers bevatten";
}
if(empty($_POST['gewicht'])) {
$error['gewicht'] = "Het ingeven van je gewicht is verplicht!";
} elseif (!preg_match("/^[0-9]*$/", $_POST['gewicht'])) {
$error['gewicht'] = "Je ingegeven gewicht kan alleen cijfers bevatten!";
}
if (empty($error)) {
$lengte = $_POST['lengte'];
$gewicht = $_POST['gewicht'];
$bmi = $gewicht / (($lengte/100) * ($lengte/100));
}
}
?>
[size=xsmall]Toevoeging op 24/11/2015 21:10:10:[/size]
Bedankt, ik was mijn bericht al aan het wijzigen, want dat zag er echt niet goed uit, maar vond niet hoe dit moest.