Voilà j'ai un petit soucis.
J'ai 3 fichier php. Le premier sert à choisir le type de réservation que l'utilisateur veut faire.
Le second sert a rentré tous les champs. Et le troisième à insérer ces champs dans la base de données.
Le problème est que une fois que clique sur enregistrer, le troisième fichier me dit qu'un champs est vide alors que je les remplis tous. Est-ce que quelqu'un comprend pourquoi ?
mon premier fichier se nomme : saisiereservation.php
le second : saisiereservation2.php
et le dernier : ajoutreservation.php
voici les codes :
Premier fichier :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Saisie d'un motif</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
</head>
<body>
<h2>Saisie d'une réservation</h2>
Choix du type de réservation :
<form method="post" action="saisiereservation2.php">
<?php
// connexion à la base
$base = mysql_connect ("localhost", "root", "") or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('csc_apli',$base) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "SELECT idtypeobjet, libelle FROM type_objet";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$result=mysql_query($sql);
// on crée les boutons radio avec une boucle while
while ($ligne=mysql_fetch_array($result))
{
echo '<input checked="checked" name="bouton" type="radio" value="'.$ligne["idtypeobjet"].'"/>'.$ligne["libelle"].'<br />';
}
echo '<input type="submit" value="Valider" />';
?>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Enregistrement d'une reservation</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
</head>
<body>
<?php
// On commence par récupérer les champs
$idobjet=$_POST["idobjet"];
$idtypemotif=$_POST["idtypemotif"];
$idmotif=$_POST["idmotif"];
$jour=$_POST["jour"];
$moi=$_POST["moi"];
$annee=$_POST["annee"];
$hd=$_POST["hd"];
$hf=$_POST["hf"];
$idsalarie=$_POST["idsalarie"];
// On vérifie si le champs est vide
if(empty($idobjet) or empty($idtypemotif) or empty($idmotif) or empty($jour) or empty($moi) or empty($annee) or empty($hd) or empty($hf) or empty($idsalarie)){
echo '<font color="red">Attention, aucun champ ne peut rester vide !!!</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else{
// connexion à la base
$base = mysql_connect ("localhost", "root", "") or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('csc_apli',$base) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO reservation (IDRES, IDSALARIE, IDOBJET, IDMOTIF, DATERES, HEUREDEB, HEUREFIN) VALUE ('', '$idsalarie', '$idobjet', '$idmotif', '$annee/$moi/$jour', '$hd', '$hf')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
// on ferme la connexion
mysql_close();
}
?>
<br />
<!-- On fait un lien rapide pour retourner aux saisie.-->
<a href="saisiereservation2.php">Retour</a>
</body>
</html>
As-tu regardé le source généré dans ta deuxième page au niveau des options de ton <select name="idsalarie"> ? Je parie qu'elles ont toutes value="".
Le champ qui contient l'idsalarie s'appelle-t-il bien idsalarie en minuscules et non pas IDSALARIE par exemple ?
À propose de majuscules et de minuscules, puisque tu travailles en xhtml, toutes tes balises devraient être en minuscules : <option> et non pas <OPTION>.
mes values contiennents les idsalarie de ma table Tu l'as vérifié en regardant le HTML généré, ou tu le crois parce que tu penses avoir écrit ton script correctement ?
Et pourrais-tu répondre aussi à ma question sur le nom EXACT du champ idsalarie dans la base de données ?
oui s'était bien idsalarie, j'ai recopier le code (ce que me conseil mon prof quand on ne trouve pas l'erreur) et tout marche.
Cela devait être une errreur de syntaxe, problème résolu, merci encore d'avoir pris du temps !