Het gebruik van een databank en PHP voor het automatiseren van webinhouden, wordt pas echt zinvol als je op een gebruiksvriendelijke manier inhouden kan toevoegen aan de databank. Uiteraard kan je dit via PHPMyAdmin, de databankbeheersoftware (geschreven in PHP) die op de meeste hostingpakketten standaard al aanwezig is. Maar in PHPMyAdmin laat je de eindgebruiker best geen inhouden toevoegen.

In deze les maken we een HTML-formulier waarin de eindgebruiker de benodigde informatie kan invoeren. Het formulier bevat een "verzend"knop. Wanneer de gebruiker daarop klikt, stuurt hij/zij de inhoud van het formulier naar een PHP-bestand op de server. Dat bestand zal de verzonden informatie uitlezen en invoegen in de juiste kolommen in de tabel (articles) in de databank.

// naam van je formulierelement
$firstname = $_POST['firstname'];
$last_name = $_POST['last_name']; 
$email= $_POST['email];

INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')";
	

Voeg onderstaande code toe aan je index.php in je head-tag.

<?php
include "connect.php"; 
//deze code staat er al"; 
$sql = "SELECT * FROM webshop_andrew ORDER BY datum"; 
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn)); 
$num_results = mysqli_num_rows($result);
$row = mysqli_fetch_assoc($result);	

// de code hieronder plaats je erbij
if(isset($_POST['submit'] )){
        
    // Formulier items bewaren
        $id = $_POST['id'];
        $datum = $_POST['datum'];
        $titel = $_POST['titel'];
        $prijs= $_POST['prijs'];
      
        $sql2  = "INSERT INTO bestelling_voornaam (id, datum, titel, prijs) VALUES ('$id','$datum','$titel','$prijs')"; 
     
  		if (!mysqli_query($conn, $sql2)) {
            die('An error occurred when submitting your review.');
        } 

    } ?>

In je HTML-code voeg je een knop bestel toe , binnen de while-loop

<form action="index.php" method="post">
<input name="ID" type="hidden" value="<?php echo $row["ID"];?>" />
<input name="datum" type="hidden" value="<?php echo $row["datum"];?>" />
<input name="titel" type="hidden" value="<?php echo $row["titel"];?>" />
<input name="prijs" type="hidden" value="<?php echo $row["prijs"];?>" />

<input type="submit" name="submit" value="bestel" />

</form>
1. Een HTML-formulier 2. Een PHP-bestand dat de verzonden informatie bewaart.

Een invoerformulier in HTML

Een vrij volledige handleiding voor het bouwen van formulieren vind je via deze link:  https://www.w3schools.com/html/html_forms.asp We zorgen ervoor dat het HTML-formulier de structuur van de databanktabel volgt. We starten vanuit het HTML-sjabloon dat je via een link in de menubalk vindt. Daaraan voegen we een FORMULIER toe. We maken nu het save.php aan, de code ziet er als volgt uit
<?php
include "connectOnline.php"; 

// Check connection if($conn === false){ 
die("ERROR: Could not connect. " . mysqli_connect_error()); 
} 

// attempt insert query execution 
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; 
if(mysqli_query($conn , $sql)){ 
echo "Records added successfully."; 
} 
else { 
echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn ); 
} 

// close connection 
mysqli_close($conn );

?>

Namen geven aan invoervelden

Met een input-element maken we een invoerveld in onze webpagina. Elke "input" krijgt ook een "name"-attribuut. We nemen hiervoor telkens de "kolomnaam" van de tabel in de databank. In de tabel "articles" in onze databank vinden we bijvoorbeeld de kolommen "title", "articledate" en "cover"... We gebruiken exact dezelfde benamingen voor de invoervelden van ons formulier.

Types geven aan invoervelden

Je kan aan eeninput-element ook een type-attribuut geven. Standaard is het type "text" als je tenminste tekst als invoer verwacht. Het type "date" tovert een datumselectorvenster tevoorschijn als je in het datumveld klikt (in de browser).