Je suis un débutant en PHP, j'ai pour mission de faire un formulaire d'entrée de réservations, cependant je bloque à un endroit.
En effet, l'utilisateur doit rentrer des données via une formulaire php, appuyer sur un bouton qui executera donc une requête pour insérer dans la base de données, cependant je ne vois pas même après recherches comment insérer NULL dans la base de données si un champ optionnel n'est pas renseigné.
En gros, je ne vois pas comment faire pour mettre null dans la BDD si un champ n'est pas renseigné (j'ai une erreur dans visual studio me disant "Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '' for column 'DateFinRes'".
C'est peut être encore un peu brouillon niveau explication ! voici le code du formulaire
Code : Tout sélectionner
<p>Informations la réservation :</p>
<form name="insertion" action="InsertionReservation.php" method="POST">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td id="TdBlur">Nom</td>
<td><input type="text" name="nom" class="textbox"></td>
</tr>
<tr align="center">
<td id="TdBlur">Prénom</td>
<td><input type="text" name="prenom" class="textbox"></td>
</tr>
<tr>
<td id="TdBlur">Le véhicule est il réservé en permanence ?</td>
<td><INPUT type= "radio" name="ResPerma" value="Oui">Oui</td>
<td><INPUT type= "radio" name="ResPerma" value="Non">Non</td>
</tr>
<tr align="center">
<td id="TdBlur">Date du début de la réservation</td>
<td><center><input type="date" name="DateDebutRes" class="textbox"></center></td>
</tr>
<tr align="center">
<td id="TdBlur">Date de fin de réservation</td>
<td><center><input type="date" name="DateFinRes" class="textbox"></center></td>
</tr>
<tr align="center">
<td id="TdBlur">Type de véhicule</td>
<td><center><input type="text" name="TypeVehicule" class="textbox"></center></td>
</tr>
<tr align="center">
<td id="TdBlur">Numéro d'identification du véhicule</td>
<td><center><input type="text" name="NumId" class="textbox"></center></td>
</tr>
</tr>
<tr align="center">
<td id="TdBlur">KMage du véhicule (si connu)</td>
<td><center><input type="text" name="KmAvant" class="textbox"></center></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="insérer" class="myButton"></td>
</tr>
</table>
</form>
</body>
</body>
</html>Code : Tout sélectionner
<?php
try
{
// PDO
// Logins
$bdd = new PDO('mysql:host=localhost;dbname=emprunt', 'root', '*********');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e)
{
// Message erreur
die('Erreur : ' . $e->getMessage());
}
$tab = array(
':nom' => $_POST['nom'],
':prenom' => $_POST['prenom'],
':ResPerma' => $_POST['ResPerma'],
':DateDebutRes' => $_POST['DateDebutRes'],
':DateFinRes' => $_POST['DateFinRes'],
':TypeVehicule' => $_POST['TypeVehicule'],
':NumId' => $_POST['NumId'],
':KmAvant' => $_POST['KmAvant']);
//création de la requête insert
$sql = "INSERT INTO `reservation` (`nom`, `prenom`, `ResPerma`, `DateDebutRes`, `DateFinRes`, `TypeVehicule`, `NumId`, `KmAvant`)
VALUES (:nom, :prenom, :ResPerma, :DateDebutRes, :DateFinRes, :TypeVehicule, :NumId, :KmAvant)" ;
$req = $bdd->prepare($sql);
if ($req->execute($tab)) {
echo '<center><h3>Insertion effective !</h3></center>'.'<center><h1><a href="reservation.php">Retour</a></h1></center>';
} else {
echo 'Erreur d\'insertion : l\'insertion n\'est pas effective';
}
// fermeture connexion
if($bdd){
$bdd = NULL;
}
?>Merci !
