Petit problème de php

Résolu/Fermé
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014 - Modifié par shishi1906 le 4/06/2013 à 09:09
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014 - 4 juin 2013 à 12:02
Bonjour,

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>




Second 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>

 <form method="post" action="ajoutreservation.php">
  
  Choix de la reservation : <select name="idobjet">
  <option value="0">---------------</option>
 
   <?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());
   
    $bouton=$_POST['bouton'];
    
    $sql2= "SELECT * FROM objet WHERE idtypeobjet=$bouton";

    mysql_query($sql2) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    $result2=mysql_query($sql2);
   
    while ($ligne=mysql_fetch_array($result2))
    {
       echo '<OPTION VALUE="'.$ligne["IDOBJET"].'">'.$ligne["LIBELLE"].'</OPTION>';
    }
    echo '<input type="submit" value="Valider" />';
    if($bouton==2)
    {
     echo '<br />
     Choix du type de motif : <select name="idtypemotif">
     <option value="0">---------------</option>';
     
     $sql3= "SELECT * FROM type_motif";

     mysql_query($sql3) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     $result3=mysql_query($sql3);
    
     while ($ligne=mysql_fetch_array($result3))
     {
        echo '<OPTION VALUE="'.$ligne["IDTYPEMOTIF"].'">'.$ligne["LIBELLE"].'</OPTION>';
     }
     echo '<input type="submit" value="Valider" />';

     echo '<br />
     Choix du motif : <select name="idmotif">
     <option value="0">---------------</option>';
     
     $sql4= "SELECT * FROM motif";

     mysql_query($sql4) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     $result4=mysql_query($sql4);
    
     while ($ligne=mysql_fetch_array($result4))
     {
        echo '<OPTION VALUE="'.$ligne["IDMOTIF"].'">'.$ligne["LIBELLE"].'</OPTION>';
     }
     echo '<input type="submit" value="Valider" />';
    }
   ?>
   
   <br />
   Jour : <select name="jour">
    <option value="0">---------------</option>
    <option value="1"> 1</option>
    <option value="2"> 2</option>
    <option value="3"> 3</option>
    <option value="4"> 4</option>
    <option value="5"> 5</option>
    <option value="6"> 6</option>
    <option value="7"> 7</option>
    <option value="8"> 8</option>
    <option value="9"> 9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
   </select>
   
   <br />
   Moi : <select name="moi">
    <option value="0">---------------</option>
    <option value="1"> Janvier</option>
    <option value="2"> Février</option>
    <option value="3"> Mars</option>
    <option value="4"> Avril</option>
    <option value="5"> Mai</option>
    <option value="6"> Juin</option>
    <option value="7">Juillet</option>
    <option value="8"> Août</option>
    <option value="9"> Septembre</option>
    <option value="10"> Octobre</option>
    <option value="11"> Novembre</option>
    <option value="12"> Décembre</option>
   </select>
   
   <br />
   Année : <select name="annee">
    <option value="0">---------------</option>
    <option value="1"> 2013</option>
    <option value="2"> 2014</option>
    <option value="3"> 2015</option>
    <option value="4"> 2016</option>
    <option value="5"> 2017</option>
    <option value="6"> 2018</option>
    <option value="7">2019</option>
    <option value="8"> 2020</option>
    <option value="9"> 2021</option>
    <option value="10"> 2022</option>
    <option value="11"> 2023</option>
    <option value="12"> 2024</option>
   </select>
 
   <br />
   Heure Début : <select name="hd">
    <option value="0">---------------</option>
    <option value="31">00:15</option> 
    <option value="31">00:30</option> 
    <option value="31">00:45</option> 
    <option value="31">01:00</option> 
    <option value="31">01:15</option> 
    <option value="31">01:30</option> 
    <option value="31">01:45</option> 
    <option value="31">02:00</option> 
    <option value="31">02:15</option> 
    <option value="31">02:30</option>
    <option value="31">02:45</option>
    <option value="31">03:00</option>
    <option value="31">03:15</option>
    <option value="31">03:30</option>
    <option value="31">03:45</option>
    <option value="31">04:00</option>
    <option value="31">04:15</option>
    <option value="31">04:30</option>
    <option value="31">04:45</option>
    <option value="31">05:00</option>
    <option value="31">05:15</option>
    <option value="31">05:30</option>
    <option value="31">05:45</option>
    <option value="31">06:00</option>
    <option value="31">06:15</option>
    <option value="31">06:30</option>
    <option value="31">06:45</option>
    <option value="31">07:00</option>
    <option value="31">07:15</option>
    <option value="31">07:30</option>
    <option value="31">07:45</option>
    <option value="1"> 08:00</option>
    <option value="2"> 08:15</option>
    <option value="3"> 08:30</option>
    <option value="4"> 08:45</option>
    <option value="5"> 09:00</option>
    <option value="6"> 09:15</option>
    <option value="7"> 09:30</option>
    <option value="8"> 09:45</option>
    <option value="9"> 10:00</option>
    <option value="10">10:15</option>
    <option value="11">10:30</option>
    <option value="12">10:45</option>
    <option value="13">11:00</option>
    <option value="14">11:15</option>
    <option value="15">11:30</option>
    <option value="16">11:45</option>
    <option value="17">12:00</option>
    <option value="18">12:15</option>
    <option value="19">12:30</option>
    <option value="20">12:45</option>
    <option value="21">13:00</option>
    <option value="22">13:15</option>
    <option value="23">13:30</option>
    <option value="24">13:45</option>
    <option value="25">14:00</option>
    <option value="26">14:15</option>
    <option value="27">14:30</option>
    <option value="28">14:45</option>
    <option value="29">15:00</option>
    <option value="30">15:15</option>
    <option value="31">15:30</option>
    <option value="31">15:45</option>
    <option value="31">16:00</option>
    <option value="31">16:15</option>
    <option value="31">16:30</option>
    <option value="31">16:45</option>
    <option value="31">17:00</option>
    <option value="31">17:15</option>
    <option value="31">17:30</option>
    <option value="31">17:45</option>
    <option value="31">18:00</option>
    <option value="31">18:15</option>
    <option value="31">18:30</option>
    <option value="31">18:45</option>
    <option value="31">19:00</option>
    <option value="31">19:15</option>
    <option value="31">19:30</option>
    <option value="31">19:45</option>
    <option value="31">20:00</option>
    <option value="31">20:15</option>
    <option value="31">20:30</option>
    <option value="31">20:45</option>
    <option value="31">21:00</option>
    <option value="31">21:15</option>
    <option value="31">21:30</option>
    <option value="31">21:45</option>
    <option value="31">22:00</option>
    <option value="31">22:15</option>
    <option value="31">22:30</option>
    <option value="31">22:45</option>
    <option value="31">23:00</option>
    <option value="31">23:15</option>
    <option value="31">23:30</option>
    <option value="31">23:45</option>
    <option value="31">00:00</option> 
   </select>
    
   <br />
   Heure Fin : <select name="hf">
       <option value="0">---------------</option>
    <option value="31">00:15</option> 
    <option value="31">00:30</option> 
    <option value="31">00:45</option> 
    <option value="31">01:00</option> 
    <option value="31">01:15</option> 
    <option value="31">01:30</option> 
    <option value="31">01:45</option> 
    <option value="31">02:00</option> 
    <option value="31">02:15</option> 
    <option value="31">02:30</option>
    <option value="31">02:45</option>
    <option value="31">03:00</option>
    <option value="31">03:15</option>
    <option value="31">03:30</option>
    <option value="31">03:45</option>
    <option value="31">04:00</option>
    <option value="31">04:15</option>
    <option value="31">04:30</option>
    <option value="31">04:45</option>
    <option value="31">05:00</option>
    <option value="31">05:15</option>
    <option value="31">05:30</option>
    <option value="31">05:45</option>
    <option value="31">06:00</option>
    <option value="31">06:15</option>
    <option value="31">06:30</option>
    <option value="31">06:45</option>
    <option value="31">07:00</option>
    <option value="31">07:15</option>
    <option value="31">07:30</option>
    <option value="31">07:45</option>
    <option value="1"> 08:00</option>
    <option value="2"> 08:15</option>
    <option value="3"> 08:30</option>
    <option value="4"> 08:45</option>
    <option value="5"> 09:00</option>
    <option value="6"> 09:15</option>
    <option value="7"> 09:30</option>
    <option value="8"> 09:45</option>
    <option value="9"> 10:00</option>
    <option value="10">10:15</option>
    <option value="11">10:30</option>
    <option value="12">10:45</option>
    <option value="13">11:00</option>
    <option value="14">11:15</option>
    <option value="15">11:30</option>
    <option value="16">11:45</option>
    <option value="17">12:00</option>
    <option value="18">12:15</option>
    <option value="19">12:30</option>
    <option value="20">12:45</option>
    <option value="21">13:00</option>
    <option value="22">13:15</option>
    <option value="23">13:30</option>
    <option value="24">13:45</option>
    <option value="25">14:00</option>
    <option value="26">14:15</option>
    <option value="27">14:30</option>
    <option value="28">14:45</option>
    <option value="29">15:00</option>
    <option value="30">15:15</option>
    <option value="31">15:30</option>
    <option value="31">15:45</option>
    <option value="31">16:00</option>
    <option value="31">16:15</option>
    <option value="31">16:30</option>
    <option value="31">16:45</option>
    <option value="31">17:00</option>
    <option value="31">17:15</option>
    <option value="31">17:30</option>
    <option value="31">17:45</option>
    <option value="31">18:00</option>
    <option value="31">18:15</option>
    <option value="31">18:30</option>
    <option value="31">18:45</option>
    <option value="31">19:00</option>
    <option value="31">19:15</option>
    <option value="31">19:30</option>
    <option value="31">19:45</option>
    <option value="31">20:00</option>
    <option value="31">20:15</option>
    <option value="31">20:30</option>
    <option value="31">20:45</option>
    <option value="31">21:00</option>
    <option value="31">21:15</option>
    <option value="31">21:30</option>
    <option value="31">21:45</option>
    <option value="31">22:00</option>
    <option value="31">22:15</option>
    <option value="31">22:30</option>
    <option value="31">22:45</option>
    <option value="31">23:00</option>
    <option value="31">23:15</option>
    <option value="31">23:30</option>
    <option value="31">23:45</option>
    <option value="31">00:00</option> 
   </select>

   <br />
   Salarié : <select name="idsalarie">
   <option value="0">---------------</option>
    <?php
     // Connexion à la base de donnée
     $cnx = mysql_connect("localhost", "root", "") or die("Impossible de se connecter");
     
     // Selection de la base
     $db = mysql_select_db("csc_apli") or die("Impossible de se connecter");
     
     // Selection dans la base type_motif
     $requete2="SELECT * FROM salarie ORDER BY nom ASC";
     
     //Exécution de la requete
     $result2=mysql_query($requete2);
     
     //Selection de tous les champs
     while ($ligne=mysql_fetch_array($result2))
     {
        echo '<OPTION VALUE="'.$ligne["idsalarie"].'">'.$ligne["NOM"].' '.$ligne["PRENOM"].'</OPTION>';
     }
    ?>
   </select>
   <input type="submit" value="Enregistrer" />
  </form>
 </body>
</html>




Dernier 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>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>


Merci d'avance
A voir également:

12 réponses

Sir_Kazumi Messages postés 25 Date d'inscription vendredi 31 mai 2013 Statut Membre Dernière intervention 17 août 2013 1
4 juin 2013 à 09:17
Une fois la connexion à la BDD effectué, plus besoin de la refaire à chaque fichier php, tu rajoute juste

<?php
session_start();
?>

au début de ton code.

Pense aussi à un while pour tes selects, ton code sera plus clair.

Pourrais-tu nous mettre l'erreur que ça t'affiche ?
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
4 juin 2013 à 09:27
Voilà ce que ça m'affiche :

"Attention, aucun champ ne peut rester vide !!!
Retour"

Donc ça rentre dans mon premier if du troisième fichier Or j'ai rempli tous mes champs vià les listes déroulantes.
0
Bonjour

Ajoute <?php print_r($_POST); ?> au début de ton dernier fichier pour vérifier ce qu'il reçoit vraiment.

Et n'oublie pas qu'en PHP, 0 est 'empty' :
https://www.php.net/manual/fr/function.empty.php
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
4 juin 2013 à 09:45
Voilà ce que me renvoi le fichier :
"Array ( [idobjet] => 3 [idtypemotif] => 1 [idmotif] => 1 [jour] => 3 [moi] => 3 [annee] => 3 [hd] => 31 [hf] => 31 [idsalarie] => ) Attention, aucun champ ne peut rester vide !!!
Retour"

Et oui, 'empty' est zéro mon If sert justement a éviter d'oublier un champ lors de la saisie.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
4 juin 2013 à 10:55
[idsalarie] => )
idsalarie est vide !
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
4 juin 2013 à 10:56
Oui j'ai compris, mais je ne comprend pas ! car je sélectionne bel et bien un salarié dans ma liste déroulante.
0
Utilisateur anonyme
4 juin 2013 à 11:16
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>.
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
4 juin 2013 à 11:31
ok pour les balise, et non mes values contiennents les idsalarie de ma table (qui vont de 1 à 27)
0
Utilisateur anonyme
4 juin 2013 à 11:35
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 ?
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
4 juin 2013 à 11:43
Je n'avais pas vérifier dans le HTML tu as raisons, mes values sont toutes à "" alors comment faire ?

Pour ce qui est du nom exact c'est: idsalarie
0
Utilisateur anonyme
4 juin 2013 à 11:56
J'insiste lourdement, mais comme tu as donné plusieurs fois des réponses inexactes : c'est bien idsalarie et pas IDSALARIE ?
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
4 juin 2013 à 12:02
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 !
0