Requete de remplissage de deux tables ensembles

Fermé
Busima Messages postés 53 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021 - Modifié le 8 nov. 2018 à 15:32
 Busima - 26 nov. 2018 à 22:05
Bonjour, j'ai un petit soucis avec mes requêtes d'insertion de données:
En fait je développe une application dans laquelle j'ai 6 tables (Formation, Candidat, Inscrire...) que l'administrateur doit remplir lui-même normalement. Cependant je veux donner la chance aux candidats à la "formation" de pouvoir "s'inscrire" directement eux-mêmes sur le site en cliquant sur l'option "s'inscrire" qui se trouve sur les différentes formations.

A cet effet, j'ai sélectionné des éléments de ma table "Formation" que j'ai affichés sur la page liste_formations.php visible par tous visiteur du site.
Sur cette page j'ai un bouton submit(S'inscrire) qui doit diriger le candidat avec l'id de la formation qu'il aura choisie sur une page ou il doit remplir un formulaire. Après le remplissage de ce formulaire, le candidat doit valider ses informations (idC, nomC, prenomC, date_de_naisance, lieunaisC) qui doivent être enregistrées normalement avec l'id de la formation.
Cependant, seules les informations relatives à la table "candidat" doivent être enregistrées dans la table "candidat", et, je veux que l'identifiant "idF" de la table formation(idF, libelle, outil, prix) aille directement dans la table intermédiaire entre "Candidat" et "Formation" qui est la table Inscrire(pk_idInscrire, fk_idC#, fk_idF#, dateprevue). De telle sorte qu'après la validation du submit par le candidat, la table "Candidat" reçoive son occurrence, et, la table intermédiaire "Inscrire" reçoive elle aussi son occurrence. Comment faire?

Voici mes codes:
1) la page "liste_formations.php"


<?php include('header.php'); ?>
<?php include('config.php'); ?>

<div class="container">
<?php 
  error_reporting(E_ALL);
  ini_set('display_errors', TRUE);
  ini_set('display_startup_errors', TRUE);

   $page = isset($_GET['page']) ? $_GET['page'] : 1;
   $page_offset = ($page - 1) * 5;
   $total ='';
   $pagination ='';

   $total_element = $bdd->query("SELECT * from formation");
   $total = $total_element->rowCount(); /* or die (print_r($total_element->errorInfo())) */
   $pagination = $total/5;
    
      $req=$bdd->query("select * from formation ORDER BY idF DESC LIMIT $page_offset, 5 ") or die(print_r($bdd->errorInfo()));
                  
    while($donnees = $req->fetch())
    { 
     echo'
        <div class="row">
      <article class="col-md-6 ajuste">
       <div class="panel panel-default">
        <div class="panel-heading"><h1>NOS FORMATIONS</h1></div>
            <div class="panel-body">
                            <p>
                                Numero: '.$donnees['idF'].'</br>Libelle: '.$donnees['libelle'].'</br>Outil: '.$donnees['outil'].'</br>Prix: '.$donnees['prix'].'</br>Lieu de formation: '.$donnees['lieuF'].'</br>Durée: '.$donnees['dureeF'].'</br>Connaissances: '.$donnees['acquisition'].'
                </p>
           <a href="inscription_pour_formation.php?id='.$donnees['idF'].'"> S\'inscrire </a> 
            </div>    
       </div>
      </article>
     </div>';
    } 
        $req->closeCursor(); 
        
     echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
      for($i=1; $i<=$pagination; $i++) //On fait notre boucle
       {
        if($i==$page) //Si il s'agit de la page actuelle...
         {
          echo ' [ '.$i.' ] '; 
         } 
         else //Sinon...
          {
           echo ' <a href="index.php?page='.$i.'">'.$i.'</a> ';
          }
       }
      echo '</p>';             
  ?>
</div>
<?php include('footer.php'); ?>


2) La page "inscription_pour_formation.php"

 
 <?php 
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
  include('header.php');
  session_start();
   if(isset($_GET["id"]))
   {
    $id=$_GET["id"];
       $_SESSION['id']=$id;
   }
  $new_id=$_SESSION['id'];
 ?>
   <form method="POST" action="">
       <div class="container">    
     <div class="row">
      <article class="col-md-12 ajuste">
       <div class="panel panel-default">
            <div class="panel-heading"><h1><h2>Resultat enregistrement</h2></h1></div>
        <div class="panel-body">


         <?php 
          include('config.php');     
           echo '<h2><center>La formation choisie est le Numéro: '.$new_id.'</h2></center>';
          $req= $bdd -> query("select * from formation where idF=$new_id") or die(print_r($bdd->errorInfo()));
          $donnees= $req ->fetch();
         ?>
         <?php
         if (isset($_POST['valider']))
          {
           
           $nomC=$_POST['nomC'];
           $prenomC=$_POST['prenomC'];
           $journaisC=$_POST['journaisC'];
           $moisnaisC=$_POST['moisnaisC'];
           $anneenaisC=$_POST['anneenaisC'];
           $lieunaisC=$_POST['lieunaisC'];
           $villeC=$_POST['villeC'];
           $quartierC=$_POST['quartierC'];
           $emailC=$_POST['emailC'];
           $cellC=$_POST['cellC'];
           $id=$_SESSION['id'];
           
           
           echo "<h3><u> VERIFICATION AVANT ENREGISTREMENT </u></h3></br>";
           echo '<div class="col-md-4"><h3>Nom </br> Prénom </br>Date de naissance: </br>Lieu de naissance: </br>Ville </br>Quartier </br>Email </br>Cell</br>Formation numero:</div></h3>
           <h3>
                 <div class="col-md-4">'.$nomC.' </br>'.$prenomC.' </br>'.$journaisC.'-'.$moisnaisC.'-'.$anneenaisC.'</br>'.$lieunaisC.'</br> '.$villeC.' </br>'.$quartierC.'</br>'.$emailC.' </br>'.$cellC.'</br>'.$id.'</div> </h3>
              
              <h4><div class="col-md-4"> Veuillez enregistrer vos informations sans soucis.
           </br></br> Nous nous atelerons à vous informer dans un bref délais! </br></br> Nous nous atelerons à vous informer dans un bref délais!</di></h4> </br>
           
           <form method="POST" action="saveCandidats.php">
            <input type="hidden" name="nomC2" value="'.$nomC.'" />
            <input type="hidden" name="prenomC2" value="'.$prenomC.'" />
            <input type="hidden" name="journaisC2" value="'.$journaisC.'" />
            <input type="hidden" name="moisnaisC2" value="'.$moisnaisC.'" />
            <input type="hidden" name="anneenaisC2" value="'.$anneenaisC.'" />
            <input type="hidden" name="lieunaisC2" value="'.$lieunaisC.'" />
            <input type="hidden" name="villeC2" value="'.$villeC.'" />
            <input type="hidden" name="quartierC2" value="'.$quartierC.'" />
            <input type="hidden" name="emailC2" value="'.$emailC.'" />
            <input type="hidden" name="cellC2" value="'.$cellC.'" />
            <input type="hidden" name="id2" value="'.$id.'" /></br>
            <input class="annuler ch1" type="submit" name="annuler" value="Annuler" />
            <input class="ch2" type="submit" name="confirmer" value="Confirmer" />
           </form>';
           
          } 
           ?>
            
           <?php 
            if(isset($_POST['confirmer']))
            {   
             $nomC2=isset($_POST['nomC2']) ? $_POST['nomC2'] : '' ;
             $prenomC2=isset($_POST['prenomC2']) ? $_POST['prenomC2'] : '';
             $journaisC2=isset($_POST['journaisC2']) ? $_POST['journaisC2'] : '';
             $moisnaisC2=isset($_POST['moisnaisC2']) ? $_POST['moisnaisC2'] : '' ;
             $anneenaisC2=isset($_POST['anneenaisC2']) ? $_POST['anneenaisC2'] : '';
             $lieunaisC2=isset($_POST['lieunaisC2']) ? $_POST['lieunaisC2'] : '';
             $villeC2=isset($_POST['villeC2']) ? $_POST['villeC2'] : '' ;
             $quartierC2=isset($_POST['quartierC2']) ? $_POST['quartierC2'] : '';
             $emailC2=isset($_POST['emailC2']) ? $_POST['emailC2'] : '';
             $cellC2=isset($_POST['cellC2']) ? $_POST['cellC2'] : '';
             $id2=isset($_POST['id2']) ? $_POST['id2'] : '';
             
             $req1=$bdd->prepare('INSERT INTO candidat(nomC, prenomC, journaisC, moisnaisC, anneenaisC, lieunaisC, villeC, quartierC, emailC, cellC) VALUES(:nomC2, :prenomC2, :journaisC2, :moisnaisC2, :anneenaisC2, :lieunaisC2, :villeC2, :quartierC2, :emailC2, :cellC2)');
             $req1->execute(array(
                  ':nomC2'=>$nomC2,
                  ':prenomC2'=>$prenomC2,
                  ':journaisC2'=>$journaisC2,
                  ':moisnaisC2'=>$moisnaisC2,
                  ':anneenaisC2'=>$anneenaisC2,
                  ':lieunaisC2'=>$lieunaisC2,
                  ':villeC2'=>$villeC2,
                  ':quartierC2'=>$quartierC2,
                  ':emailC2'=>$emailC2,
                  ':cellC2'=>$cellC2)) or die (print_r($req->errorInfo()));
                  $req->closeCursor();
                  
           $req2 = $bdd -> query('SELECT (jourF, moisF, anneeF) FROM inscrire WHERE (jourF=:jourF2, moisF=:moisF2, anneeF=:anneeF2) AND idF = :id');
             
             $idC2=isset($_POST['idC2']) ? $_POST['idC2'] : '' ;
             $id2=isset($_POST['id2']) ? $_POST['id2'] : '';
             $jourF2=isset($_POST['jourF2']) ? $_POST['jourF2'] : '';
             $moisF2=isset($_POST['moisF2']) ? $_POST['moisF2'] : '';
             $anneeF2=isset($_POST['anneeF2']) ? $_POST['anneeF2'] : ''; 
             
             $req3=$bdd->prepare('INSERT INTO inscrire(idC, id, jourF, moisF, anneeF) VALUES(:idC2, :id2, :jourF2, :moisF2, :anneeF2)');
             $req3->execute(array(':idC2'=>$_POST['idC2'], 
                  ':id2'=>$new_id,
                  ':jourF2'=>$_POST['jourF2'],
                  ':moisF2'=>$_POST['moisF2'],
                  ':anneeF2'=>$_POST['anneeF2'])) or die (print_r($req->errorInfo()));
                  $req->closeCursor();
                  echo'<h3> Inscription faite avec succès!</h3> </br><h3><a href="liste_formations.php">Faire un autre enregistrement!</a></h3>';
            
            }else if(isset($_POST['annuler']))
              {
               header('Location:index.php');
              }
           
             ?>
                    </div>
       </div>
      </article>
     </div>
                </div>  
    <div class="container">    
     <div class="row">
      <article class="col-md-12 ajuste">
       <div class="panel panel-default">
            <div class="panel-heading"><h1><h2>Donnez vos références pour la validation de votre reservation!</h2></h1></div>
        <div class="panel-body">
         <div class="col-md-6">
             <div class="row">
              <div class="col-md-4">
               <label>nom</label> </br><br/>
            <label>Prénom</label> </br><br/>
            <label>Date de naissance</label> </br><br/>
            <label>Lieu de naissance</label> </br><br/>
            <label>Ville</label> </br><br/>
            <label>Quartier</label> </br><br/>
            <label>Email</label> </br><br/>
            <label>Cell</label> <br/><br/>
           </div>
           <div class="col-md-8">
               <input type="text" name="nomC" placeholder="Votre nom" required size="40"/> <br/><br/>
            <input type="text" name="prenomC" placeholder="Votre nom" required size="40"/> <br/><br/>
             <select name="journaisC">
              <option name="journaisC">1</option>
              <option name="journaisC">2</option>
              <option name="journaisC">3</option>
              <option name="journaisC">4</option>
              <option>05</option> <option>06</option> <option>07</option> <option>08</option> <option>09</option>
              <option>10</option> <option>11</option> <option>12</option> <option>13</option> <option>14</option> <option>15</option>
              <option>16</option> <option>17</option> <option>18</option> <option>19</option> <option>20</option> <option>21</option>
              <option>22</option> <option>23</option> <option>24</option> <option>25</option> <option>26</option> <option>27</option>
              <option>28</option> <option>29</option> <option>30</option> <option>31</option>
             </select>
             <select name="moisnaisC">
              <option name="moisnaisC">  1  </option>
              <option name="moisnaisC">   2   </option>
              <option name="moisnaisC">   3   </option>
              <option name="moisnaisC">   4   </option>
              <option name="moisnaisC">   5   </option>
              <option name="moisnaisC">  6  </option>
              <option name="moisnaisC">   7   </option>
              <option name="moisnaisC">   8   </option>
              <option name="moisnaisC">   9   </option>
              <option name="moisnaisC">   10   </option>
              <option name="moisnaisC">  11  </option>
              <option name="moisnaisC">   12   </option>
             </select>
             <select name="anneenaisC">
              <option name="anneenaisC">   2010  </option>
              <option name="anneenaisC">   2009   </option>
              <option name="anneenaisC">   2008  </option>
              <option name="anneenaisC">   2007  </option>
              <option name="anneenaisC">   2006  </option>
              <option name="anneenaisC">   2005  </option>
              <option name="anneenaisC">   2004   </option>
              <option name="anneenaisC">   2003  </option>
              <option name="anneenaisC">   2002  </option>
              <option name="anneenaisC">   2001  </option>
              <option name="anneenaisC">   2000  </option>
              <option name="anneenaisC">   1999  </option>
              <option name="anneenaisC">   1998  </option>
              <option name="anneenaisC">   1997  </option>
              <option name="anneenaisC">   1996   </option>
              <option name="anneenaisC">   1995  </option>
              <option name="anneenaisC">   1994  </option>
              <option name="anneenaisC">   1993  </option>
              <option name="anneenaisC">   1992  </option>
              <option name="anneenaisC">   1991   </option>
              <option name="anneenaisC">   1990   </option>
              <option name="anneenaisC">   1989  </option>
              <option name="anneenaisC">   1988  </option>
              <option name="anneenaisC">   1987  </option>
              <option name="anneenaisC">   1986  </option>
              <option name="anneenaisC">   1985   </option>
              <option name="anneenaisC">   1984  </option>
              <option name="anneenaisC">   1983  </option>
              <option name="anneenaisC">   1982  </option>
              <option name="anneenaisC">   1981  </option>
              <option name="anneenaisC">   1980  </option>
              <option name="anneenaisC">   1970  </option>
              <option name="anneenaisC">   1960  </option>
              <option name="anneenaisC">   1950  </option>
              <option name="anneenaisC">   1949   </option>
              <option name="anneenaisC">   1948  </option>
              <option name="anneenaisC">   1947  </option>
              <option name="anneenaisC">   1946  </option>
              <option name="anneenaisC">   1945  </option>
              <option name="anneenaisC">   1944   </option>
              <option name="anneenaisC">   1943  </option>
              <option name="anneenaisC">   1942  </option>
              <option name="anneenaisC">   1941  </option>
              <option name="anneenaisC">   1940  </option>
             </select>
             </br><br/>
                 
                 <input type="text" name="lieunaisC" placeholder="Lieu de naissance" required size="40"/> <br/><br/>
                 <input type="text" name="villeC" placeholder="Ville actuelle" required size="40"/> <br/><br/>
                 <input type="text" name="quartierC" placeholder="Quartier" required size="40"/> <br/><br/>
                 <input type="email" name="emailC" placeholder="Email" required size="40"/> <br/><br/>
                 <input type="text" name="cellC" placeholder="contact" required size="40"/> <br/><br/>
                 <input type="hidden" name="id" value="id"size="20"/>
                <input type="submit" name="valider" value="valider" align="right"/>
                </div>
          </div>
         </div>

                 <div class="col-md-6">
            <?php echo 'Numéro: '.$id=$donnees['idF']."</br><br/><br/>";?>
            <?php echo 'Libelle: '. $donnees['libelle']."</br><br/><br/>" ;?>
            <?php echo 'Outil: '. $donnees['outil']."</br><br/><br/>" ;?>
            <?php echo 'Prix: '.$donnees['prix'] ."</br><br/><br/>";?> 
            <?php echo 'Lieu : '.$donnees['lieuF'] ."</br><br/><br/>" ;?>
            <?php echo 'Durée: '.$donnees['dureeF']."</br><br/><br/>" ;?>
            <?php echo 'Connaissance: '.$donnees['acquisition']."</br><br/><br/>" ;?>
            <?php '<a href="operation_script.php?id='.$donnees['idF'].'>Suivant</a> ';?>
                 </div>
        </div>
       </div>
      </article>
     </div>
                </div>     
   </form>
            <?php include('footer.php'); ?>
       <script src="js/jquery.js"> </script>
    <script src="js/bootstrap.min.js"></script>
   </body>
 </html>

A voir également:

3 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
8 nov. 2018 à 15:18
Bonjour,

Je ne suis pas certain de comprendre quel est ton souci....

Tu insères les données dans la première table.
Tu récupères l' ID auto-incrémenté nouvellement généré lors de l'insertion si besoin
Puis Tu insères les données dans la secondes tables. (dont l'ID )... etc....

Pour récupérer la valeur de l'id nouvellement créé lors de l'insertion
https://www.php.net/manual/fr/pdo.lastinsertid.php


Au passage, je t'invite fortement à lire ET à appliquer ce qui se trouve dans ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.


0
Busima Messages postés 53 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021 1
8 nov. 2018 à 15:34
Merci pour le rappel des codes pour la détection des erreurs.

Non Jordane:
1) premièrement je fais l'affichage de toutes mes formations sur une page.
2) Deuxièmement je sélectionne la formation que je veux faire et je remplis mon formulaire.
3)Troisièmement j'insère les données de mon formulaire dans la première table avec $rq1.
4) Quatrièmement je veux aussi insérer l'id de la formation choisie qui était dans le paramètre GET dans la table intermédiaire Inscrire.
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
8 nov. 2018 à 16:04
Pourquoi dis tu non ?
Je ne comprend pas où se trouve ton souci......
0
Busima Messages postés 53 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021 1
Modifié le 8 nov. 2018 à 16:33
C'est pour mieux vous éclaircir ce que je veux que je dis non.

1) premièrement je fais l'affichage de toutes mes formations sur une page. ça c'est ok!
2) Deuxièmement je sélectionne la formation que je veux faire et je remplis mon formulaire. ça aussi c'est ok!

Voici maintenant ci-dessous ce que je veux:

3) Insérer les données de mon formulaire dans la première table avec $rq1 = $bdd->...
Ensuite, insérer l'id de la formation choisie qui était dans le paramètre issu de la variable globale GET dans la table intermédiaire Inscrire avec $req3.
Et $req2 doit sélectionner la dateprevue pour la formation dans la table intermédiaire "inscrire" pour faire une liaison d'insértion avec idC dans la table "inscrire"
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
8 nov. 2018 à 16:38
J'ai bien compris ....
maintenant ce que j'aimerai que tu fasses (car je ne ferai pas le code à ta place....)
c'est de nous poster UNIQUEMENT le code de tes requêtes ( avec la récupération des différentes données qui vont avec bien entendu ).
Et que tu expliques, si tu rencontres des difficultés, les erreurs que tu as.

NB: Concernant l'écriture de ton code et la récupération "PROPRE" des variables il serait fort souhaitable que tu t'inspires des liens que je t'ai donné.
0
Busima Messages postés 53 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021 1
Modifié le 8 nov. 2018 à 17:08
Ok première requête:

$req1=$bdd->prepare('INSERT INTO candidat(nomC, prenomC, journaisC, moisnaisC, anneenaisC, lieunaisC, villeC, quartierC, emailC, cellC) VALUES(:nomC2, :prenomC2, :journaisC2, :moisnaisC2, :anneenaisC2, :lieunaisC2, :villeC2, :quartierC2, :emailC2, :cellC2)');
    $req1->execute(array(
                  ':nomC2'=>$nomC2,
                  ':prenomC2'=>$prenomC2,
                  ':journaisC2'=>$journaisC2,
                  ':moisnaisC2'=>$moisnaisC2,
                  ':anneenaisC2'=>$anneenaisC2,
                  ':lieunaisC2'=>$lieunaisC2,
                  ':villeC2'=>$villeC2,
                  ':quartierC2'=>$quartierC2,
                  ':emailC2'=>$emailC2,
                  ':cellC2'=>$cellC2)) or die (print_r($req->errorInfo()));
                  $req->closeCursor();
           


Deuxième requête
       
           $req2 = $bdd -> query('SELECT (jourF, moisF, anneeF) FROM inscrire WHERE (jourF=:jourF2, moisF=:moisF2, anneeF=:anneeF2) AND idF = :id');
             
             $idC2=isset($_POST['idC2']) ? $_POST['idC2'] : '' ;
             $id2=isset($_POST['id2']) ? $_POST['id2'] : '';
             $jourF2=isset($_POST['jourF2']) ? $_POST['jourF2'] : '';
             $moisF2=isset($_POST['moisF2']) ? $_POST['moisF2'] : '';
             $anneeF2=isset($_POST['anneeF2']) ? $_POST['anneeF2'] : ''; 
             
             


Troisième Requete
$req3=$bdd->prepare('INSERT INTO inscrire(idC, id, jourF, moisF, anneeF) VALUES(:idC2, :id2, :jourF2, :moisF2, :anneeF2)');
             $req3->execute(array(':idC2'=>$_POST['idC2'], 
                  ':id2'=>$new_id,
                  ':jourF2'=>$_POST['jourF2'],
                  ':moisF2'=>$_POST['moisF2'],
                  ':anneeF2'=>$_POST['anneeF2'])) or die (print_r($req->errorInfo()));
                  $req->closeCursor();
                  echo'<h3> Inscription faite avec succès!</h3> </br><h3><a href="liste_formations.php">Faire un autre enregistrement!</a></h3>';
            
            }else if(isset($_POST['annuler']))
              {
               header('Location:index.php');
              }


Excusez-moi, voici les messages d'erreur qu'on m'affiche et que j'ai oublié de mentionné dans mon premier post:

1 - Warning: PDO::query(): SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ':jourF2, moisF=:moisF2, anneeF=:anneeF2) AND idF = :id' à la ligne 1 in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 106

2 - Undefined index: idC2 in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 115

3 - Undefined index: jourF2 in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 117

4 - Undefined index: moisF2 in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 118

5 - Undefined index: anneeF2 in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 119

6 - PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Champ 'id' inconnu dans field list in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 119
0
Busima Messages postés 53 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021 1
9 nov. 2018 à 20:41
Bonsoir, y a quelqu'un pour m'aider?
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
10 nov. 2018 à 07:34
Bonjour,

Tu as plusieurs erreurs...
Déjà au niveau de ta requête


1 - Warning: PDO::query(): SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ':jourF2, moisF=:moisF2, anneeF=:anneeF2) AND idF = :id' à la ligne 1 in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 106

WHERE (jourF=:jourF2, moisF=:moisF2, anneeF=:anneeF2) AND idF = :id'

TU dois mettre des AND (ou des OR) entre CHAQUE condition
par exemple
WHERE jourF=:jourF2 AND moisF=:moisF2 AND anneeF=:anneeF2  AND idF = :id'




6 - PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Champ 'id' inconnu dans field list in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 119

Le message est clair... le champ 'id' n'existe pas dans ta table
je suppose dans cette requête
 'INSERT INTO inscrire(idC, id, jourF, moisF, anneeF) 


Pour les autres erreurs... le souci ne se poserait pas si tu avais appliqué le contenu des lien que je t'avais donné.
Je te les redonne :

Au passage, je t'invite fortement à lire ET à appliquer ce qui se trouve dans ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

0
Busima Messages postés 53 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021 1
Modifié le 11 nov. 2018 à 12:38
Bonjour Jordane.
Je commence par vous remercier pour l'aide.
Cependant j'ai fait les modifications que vous m'avez demandées. Les erreurs ont diminué mais il reste des erreurs au niveau de mes requêtes. Je tiens à m'excuser, mais malheureusement je suis obligé de vous montrer tous le code afin que vous vous retrouviez facilement:

         <?php 
  include('header.php');
  session_start();
   if(isset($_GET["id"]))
   {
    $id=$_GET["id"];
       $_SESSION['id']=$id;
   }
  $new_id=$_SESSION['id'];
 ?>
   <form method="POST" action="">
       <div class="container">    
     <div class="row">
      <article class="col-md-12 col-sm-12 col-xs-12 ajuste">
       <div class="panel panel-default">
            <div class="panel-heading"><h2>Procédure d'inscription: Vous êtes sur le point de vous inscrire pour la formation <?php echo $_GET['id'];?></h2></div>
        <div class="panel-body">


         <?php
                                        error_reporting(E_ALL);
          ini_set('display_errors', TRUE);
          ini_set('display_startup_errors', TRUE);
          
          include('config.php');     
           echo '<h2><center>La formation choisie est le Numéro: '.$new_id.'</h2></center>';
          $req= $bdd -> query("select * from formation where idF=$new_id") or die(print_r($bdd->errorInfo()));
          $donnees= $req ->fetch();
         ?>
         <?php
         if (isset($_POST['valider']))
          {
           $nomC=$_POST['nomC'];
           $prenomC=$_POST['prenomC'];
           $journaisC=$_POST['journaisC'];
           $moisnaisC=$_POST['moisnaisC'];
           $anneenaisC=$_POST['anneenaisC'];
           $lieunaisC=$_POST['lieunaisC'];
           $villeC=$_POST['villeC'];
           $quartierC=$_POST['quartierC'];
           $emailC=$_POST['emailC'];
           $cellC=$_POST['cellC'];
           $id=$_SESSION['id'];
           
           echo "<h3><u> VERIFICATION AVANT ENREGISTREMENT </u></h3></br>";
           echo '<div class="col-md-4"><h3>Nom </br> Prénom </br>Date de naissance: </br>Lieu de naissance: </br>Ville </br>Quartier </br>Email </br>Cell</br>Formation numero:</div></h3>
           <h3>
                 <div class="col-md-4">'.$nomC.' </br>'.$prenomC.' </br>'.$journaisC.'-'.$moisnaisC.'-'.$anneenaisC.'</br>'.$lieunaisC.'</br> '.$villeC.' </br>'.$quartierC.'</br>'.$emailC.' </br>'.$cellC.'</br>'.$id.'</div> </h3>
              
              <h4><div class="col-md-4"> Veuillez enregistrer vos informations sans soucis.
           </br></br> Nous nous atelerons à vous informer dans un bref délais! </br></br> Nous nous atelerons à vous informer dans un bref délais!</di></h4> </br>
           
           <form method="POST" action="saveCandidats.php">
            <input type="hidden" name="nomC2" value="'.$nomC.'" />
            <input type="hidden" name="prenomC2" value="'.$prenomC.'" />
            <input type="hidden" name="journaisC2" value="'.$journaisC.'" />
            <input type="hidden" name="moisnaisC2" value="'.$moisnaisC.'" />
            <input type="hidden" name="anneenaisC2" value="'.$anneenaisC.'" />
            <input type="hidden" name="lieunaisC2" value="'.$lieunaisC.'" />
            <input type="hidden" name="villeC2" value="'.$villeC.'" />
            <input type="hidden" name="quartierC2" value="'.$quartierC.'" />
            <input type="hidden" name="emailC2" value="'.$emailC.'" />
            <input type="hidden" name="cellC2" value="'.$cellC.'" />
            <input type="hidden" name="id2" value="'.$id.'" /></br>
            <input class="annuler ch1" type="submit" name="annuler" value="Annuler" />
            <input class="ch2" type="submit" name="confirmer" value="Confirmer" />
           </form>';
          } 
         ?>
           <?php 
            if(isset($_POST['confirmer']))
            {   
             $nomC2=isset($_POST['nomC2']) ? $_POST['nomC2'] : '' ;
             $prenomC2=isset($_POST['prenomC2']) ? $_POST['prenomC2'] : '';
             $journaisC2=isset($_POST['journaisC2']) ? $_POST['journaisC2'] : '';
             $moisnaisC2=isset($_POST['moisnaisC2']) ? $_POST['moisnaisC2'] : '' ;
             $anneenaisC2=isset($_POST['anneenaisC2']) ? $_POST['anneenaisC2'] : '';
             $lieunaisC2=isset($_POST['lieunaisC2']) ? $_POST['lieunaisC2'] : '';
             $villeC2=isset($_POST['villeC2']) ? $_POST['villeC2'] : '' ;
             $quartierC2=isset($_POST['quartierC2']) ? $_POST['quartierC2'] : '';
             $emailC2=isset($_POST['emailC2']) ? $_POST['emailC2'] : '';
             $cellC2=isset($_POST['cellC2']) ? $_POST['cellC2'] : '';
             $id2=isset($_POST['id2']) ? $_POST['id2'] : '';
                 /*$req1 doit me permettre d'enregsitrer le candidat dans la table "candidat" car il ya une cardinalité 1,n entre "candidat" et "formation" d'ou la table intermédiaire "inscrire". Pendant son inscription, l'id du candidat ici idC doit donc partir dans la table "inscrire"*/
              
                 $req1 = "INSERT INTO candidat(nomC, prenomC, journaisC, moisnaisC, anneenaisC, lieunaisC, villeC, quartierC, emailC, cellC) VALUES(:nomC2, :prenomC2, :journaisC2, :moisnaisC2, :anneenaisC2, :lieunaisC2, :villeC2, :quartierC2, :emailC2, :cellC2)";
                  
               $datas = array(':nomC2'=>$nomC2, ':prenomC2'=>$prenomC2, ':journaisC2'=>$journaisC2, ':moisnaisC2'=>$moisnaisC2,                ':anneenaisC2'=>$anneenaisC2, ':lieunaisC2'=>$lieunaisC2, ':villeC2'=>$villeC2, ':quartierC2'=>$quartierC2,                ':emailC2'=>$emailC2, ':cellC2'=>$cellC2);
                   $req->closeCursor();
              try 
                     {
                   $requete = $bdd -> prepare($req1);
                                                                $requete->execute($datas) ; 
                  }catch(Exception $e)
                  {
                                                                // en cas d'erreur :
                                                                echo " Erreur ! ".$e->getMessage();
                                                                echo " Les datas : " ;
                                                                print_r($datas);
                                                            }
                                                 try 
                 {
                           $req2 = $bdd -> query('SELECT (inscrire.jourF, inscrire.moisF, inscrire.anneeF) FROM candidat, inscrire, formation WHERE (inscrire.jourF = :jourF2 AND inscrire.moisF = :moisF2 AND inscrire.anneeF = :anneeF2) AND formation.idF = :id');
                 
               $idC2=isset($_POST['idC2']) ? $_POST['idC2'] : '' ;
               $id2=isset($_POST['id2']) ? $_POST['id2'] : '';
               $jourF2=isset($_POST['jourF2']) ? $_POST['jourF2'] : '';
               $moisF2=isset($_POST['moisF2']) ? $_POST['moisF2'] : '';
               $anneeF2=isset($_POST['anneeF2']) ? $_POST['anneeF2'] : ''; 
               
               $req3=$bdd->prepare('INSERT INTO inscrire(idC, id, jourF, moisF, anneeF) VALUES(:idC2, :id2, :jourF2, :moisF2, :anneeF2)');
               $req3->execute(array(':idC2'=>$_POST['idC2'], 
                    ':id2'=>$new_id,
                    ':jourF2'=>$_POST['jourF2'],
                    ':moisF2'=>$_POST['moisF2'],
                    ':anneeF2'=>$_POST['anneeF2'])) or die (print_r($req->errorInfo()));
                    $req->closeCursor();
                    echo'<h3> Inscription faite avec succès!</h3> </br><h3><a href="liste_formations.php">Faire un autre enregistrement!</a></h3>';
                    }catch(Exception $e)
                  {
                                                                // en cas d'erreur :
                                                                echo " Erreur ! ".$e->getMessage();
                                                                echo " Les datas : " ;
                print_r($req2).'</br>';
                print_r($req3);
                                                            }

            }else if(isset($_POST['annuler']))
              {
               header('Location:index.php');
              }

             ?>
                    </div>
       </div>
      </article>
     </div>
                </div>  
    <div class="container">    
     <div class="row">
      <article class="col-md-12 ajuste">
       <div class="panel panel-default">
            <div class="panel-heading"><h1><h2>Donnez vos références pour la validation de votre reservation!</h2></h1></div>
        <div class="panel-body">
         <div class="col-md-6">
             <div class="row">
              <div class="col-md-4">
               <label>nom</label> </br><br/>
            <label>Prénom</label> </br><br/>
            <label>Date de naissance</label> </br><br/>
            <label>Lieu de naissance</label> </br><br/>
            <label>Ville</label> </br><br/>
            <label>Quartier</label> </br><br/>
            <label>Email</label> </br><br/>
            <label>Cell</label> <br/><br/>
           </div>
           <div class="col-md-8">
               <input type="text" name="nomC" placeholder="Votre nom" required size="40"/> <br/><br/>
            <input type="text" name="prenomC" placeholder="Votre nom" required size="40"/> <br/><br/>
                 <!--<input type="text" name="datenais" placeholder="Date de naissance" required size="40"/> <br/><br/> 
                 
                 <label>Date de naissance</label> </br>-->
             <!-- <input type="text" name="datenaisC"/> </br> -->
             <select name="journaisC">
              <option name="journaisC">1</option>
              <option name="journaisC">2</option>
              <option name="journaisC">3</option>
              <option name="journaisC">4</option>
              <option>05</option> <option>06</option> <option>07</option> <option>08</option> <option>09</option>
              <option>10</option> <option>11</option> <option>12</option> <option>13</option> <option>14</option> <option>15</option>
              <option>16</option> <option>17</option> <option>18</option> <option>19</option> <option>20</option> <option>21</option>
              <option>22</option> <option>23</option> <option>24</option> <option>25</option> <option>26</option> <option>27</option>
              <option>28</option> <option>29</option> <option>30</option> <option>31</option>
             </select>
             <select name="moisnaisC">
              <option name="moisnaisC">  1  </option>
              <option name="moisnaisC">   2   </option>
              <option name="moisnaisC">   3   </option>
              <option name="moisnaisC">   4   </option>
              <option name="moisnaisC">   5   </option>
              <option name="moisnaisC">  6  </option>
              <option name="moisnaisC">   7   </option>
              <option name="moisnaisC">   8   </option>
              <option name="moisnaisC">   9   </option>
              <option name="moisnaisC">   10   </option>
              <option name="moisnaisC">  11  </option>
              <option name="moisnaisC">   12   </option>
             </select>
             <select name="anneenaisC">
              <option name="anneenaisC">   2010  </option>
              <option name="anneenaisC">   2009   </option>
              <option name="anneenaisC">   2008  </option>
              <option name="anneenaisC">   2007  </option>
              <option name="anneenaisC">   2006  </option>
              <option name="anneenaisC">   2005  </option>
              <option name="anneenaisC">   2004   </option>
              <option name="anneenaisC">   2003  </option>
              <option name="anneenaisC">   2002  </option>
              <option name="anneenaisC">   2001  </option>
              <option name="anneenaisC">   2000  </option>
              <option name="anneenaisC">   1999  </option>
              <option name="anneenaisC">   1998  </option>
              <option name="anneenaisC">   1997  </option>
              <option name="anneenaisC">   1996   </option>
              <option name="anneenaisC">   1995  </option>
              <option name="anneenaisC">   1994  </option>
              <option name="anneenaisC">   1993  </option>
              <option name="anneenaisC">   1992  </option>
              <option name="anneenaisC">   1991   </option>
              <option name="anneenaisC">   1990   </option>
              <option name="anneenaisC">   1989  </option>
              <option name="anneenaisC">   1988  </option>
              <option name="anneenaisC">   1987  </option>
              <option name="anneenaisC">   1986  </option>
              <option name="anneenaisC">   1985   </option>
              <option name="anneenaisC">   1984  </option>
              <option name="anneenaisC">   1983  </option>
              <option name="anneenaisC">   1982  </option>
              <option name="anneenaisC">   1981  </option>
              <option name="anneenaisC">   1980  </option>
              <option name="anneenaisC">   1970  </option>
              <option name="anneenaisC">   1960  </option>
              <option name="anneenaisC">   1950  </option>
              <option name="anneenaisC">   1949   </option>
              <option name="anneenaisC">   1948  </option>
              <option name="anneenaisC">   1947  </option>
              <option name="anneenaisC">   1946  </option>
              <option name="anneenaisC">   1945  </option>
              <option name="anneenaisC">   1944   </option>
              <option name="anneenaisC">   1943  </option>
              <option name="anneenaisC">   1942  </option>
              <option name="anneenaisC">   1941  </option>
              <option name="anneenaisC">   1940  </option>
             </select>
             </br><br/>
                 
                 <input type="text" name="lieunaisC" placeholder="Lieu de naissance" required size="40"/> <br/><br/>
                 <input type="text" name="villeC" placeholder="Ville actuelle" required size="40"/> <br/><br/>
                 <input type="text" name="quartierC" placeholder="Quartier" required size="40"/> <br/><br/>
                 <input type="email" name="emailC" placeholder="Email" required size="40"/> <br/><br/>
                 <input type="text" name="cellC" placeholder="contact" required size="40"/> <br/><br/>
                 <input type="hidden" name="id" value="id"size="20"/>
                <input type="submit" name="valider" value="valider" align="right"/>
                </div>
          </div>
         </div>

                 <div class="col-md-6">
            <?php echo 'Numéro: '.$id=$donnees['idF']."</br><br/><br/>";?>
            <?php echo 'Libelle: '. $donnees['libelle']."</br><br/><br/>" ;?>
            <?php echo 'Outil: '. $donnees['outil']."</br><br/><br/>" ;?>
            <?php echo 'Prix: '.$donnees['prix'] ."</br><br/><br/>";?> 
            <?php echo 'Lieu : '.$donnees['lieuF'] ."</br><br/><br/>" ;?>
            <?php echo 'Durée: '.$donnees['dureeF']."</br><br/><br/>" ;?>
            <?php echo 'Connaissance: '.$donnees['acquisition']."</br><br/><br/>" ;?>
            <?php '<a href="operation_script.php?id='.$donnees['idF'].'>Suivant</a> ';?>
                 </div>
        </div>
       </div>
      </article>
     </div>
                </div>     
   </form>
            <?php include('footer.php'); ?>
       <script src="js/jquery.js"> </script>
    <script src="js/bootstrap.min.js"></script>
   </body>
 </html>


Et voici les erreurs qui s'affichent me disant que mes variables de requêtes ne sont pas définies:

1 - Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ':jourF2 AND inscrire.moisF = :moisF2 AND inscrire.anneeF = :anneeF2) AND formati' à la ligne 1 Les datas :
Undefined variable: req2 in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 124
2 - Undefined variable: req3 in C:\wamp\www\gabarit6\application formation\inscription_pour_formation.php on line 125

Je ne sais pas pourquoi... Encore merci!
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
11 nov. 2018 à 20:22

Je tiens à m'excuser, mais malheureusement je suis obligé de vous montrer tous le code afin que vous vous retrouviez facilement:

Non ce n'est pas plus facile pour moi de devoir me palucher tout ton code... il serait, au contraire, souhaitable que tu cibles toi même les éléments UTILES pour traiter tes questions.

Quoi qu'il en soit, ton code manque cruellement de rigueur...

Voici de quoi légèrement l'améliorer:
  <?php 
  //on active les erreurs PHP au DEBUT DU CODE
  error_reporting(E_ALL);
  ini_set('display_errors', TRUE);
  ini_set('display_startup_errors', TRUE);

  //activation des sessions
  session_start();

  //includes
  require_once('header.php');
  require_once('config.php');  
   
  if(!empty($_GET["id"])) {
     $id= $_GET["id"];
     $_SESSION['id'] = $id;
  }

  $new_id= !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;


  //préparation de la requête et des variables
  $sql = "SELECT * FROM formation WHERE idF = :idF";
  $datas = array(':idF'=>$new_id);

  //Execution de la requete
  try{
    $requete = $bdd->prepare($sql) ;
    $requete->execute($datas) ;
    $donnees = $requete->fetch();
  }catch(Exception $e){
    // en cas d'erreur :
     echo " Erreur ! ".$e->getMessage();
     echo " Les datas : " ;
     print_r($datas);
  }




  if(isset($_POST['confirmer'])) {   
    $nomC2=isset($_POST['nomC2']) ? $_POST['nomC2'] : '' ;
    $prenomC2=isset($_POST['prenomC2']) ? $_POST['prenomC2'] : '';
    $journaisC2=isset($_POST['journaisC2']) ? $_POST['journaisC2'] : '';
    $moisnaisC2=isset($_POST['moisnaisC2']) ? $_POST['moisnaisC2'] : '' ;
    $anneenaisC2=isset($_POST['anneenaisC2']) ? $_POST['anneenaisC2'] : '';
    $lieunaisC2=isset($_POST['lieunaisC2']) ? $_POST['lieunaisC2'] : '';
    $villeC2=isset($_POST['villeC2']) ? $_POST['villeC2'] : '' ;
    $quartierC2=isset($_POST['quartierC2']) ? $_POST['quartierC2'] : '';
    $emailC2=isset($_POST['emailC2']) ? $_POST['emailC2'] : '';
    $cellC2=isset($_POST['cellC2']) ? $_POST['cellC2'] : '';
    $id2=isset($_POST['id2']) ? $_POST['id2'] : '';
    
    $req1 = "INSERT INTO candidat(nomC, prenomC, journaisC, moisnaisC, anneenaisC, lieunaisC, villeC, quartierC, emailC, cellC) 
        VALUES(:nomC2, :prenomC2, :journaisC2, :moisnaisC2, :anneenaisC2, :lieunaisC2, :villeC2, :quartierC2, :emailC2, :cellC2)";
    
    $datas = array(':nomC2'=>$nomC2, 
            ':prenomC2'=>$prenomC2, 
            ':journaisC2'=>$journaisC2, 
            ':moisnaisC2'=>$moisnaisC2,
            ':anneenaisC2'=>$anneenaisC2, 
            ':lieunaisC2'=>$lieunaisC2, 
            ':villeC2'=>$villeC2, 
            ':quartierC2'=>$quartierC2,
            ':emailC2'=>$emailC2, 
            ':cellC2'=>$cellC2);
    try {
      $requete = $bdd -> prepare($req1);
      $requete->execute($datas) ; 
    }catch(Exception $e) {
      // en cas d'erreur :
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
      print_r($datas);
    }
    
    $sql = 'INSERT INTO inscrire(idC, id, jourF, moisF, anneeF) VALUES(:idC2, :id2, :jourF2, :moisF2, :anneeF2)';
    $datas = array(':idC2'=>$_POST['idC2'], 
        ':id2'=>$new_id,
        ':jourF2'=>$jourF2,
        ':moisF2'=>$moisF2,
        ':anneeF2'=>$anneeF2);
    try  {
      $idC2=isset($_POST['idC2']) ? $_POST['idC2'] : '' ;
      $id2=isset($_POST['id2']) ? $_POST['id2'] : '';
      $jourF2=isset($_POST['jourF2']) ? $_POST['jourF2'] : '';
      $moisF2=isset($_POST['moisF2']) ? $_POST['moisF2'] : '';
      $anneeF2=isset($_POST['anneeF2']) ? $_POST['anneeF2'] : ''; 

      $req = $bdd->prepare($sql);
      $req->execute($datas);
      echo'<h3> Inscription faite avec succès!</h3> </br><h3><a href="liste_formations.php">Faire un autre enregistrement!</a></h3>';
    }catch(Exception $e) {
      // en cas d'erreur :
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
    }

  }else if(isset($_POST['annuler'])){
    header('Location:index.php');
    exit(); //toujours un exit après une redirection
  }

   ?>
       
      <div class="container">  
       <div class="row">
        <article class="col-md-12 col-sm-12 col-xs-12 ajuste">
         <div class="panel panel-default">
          <div class="panel-heading"><h2>Procédure d'inscription: Vous êtes sur le point de vous inscrire pour la formation <?php echo $_GET['id'];?></h2></div>
            <div class="panel-body">
            <?php
            echo '<h2><center>La formation choisie est le Numéro: '.$new_id.'</h2></center>';    
             
             if (isset($_POST['valider'])){
               $nomC=$_POST['nomC'];
               $prenomC=$_POST['prenomC'];
               $journaisC=$_POST['journaisC'];
               $moisnaisC=$_POST['moisnaisC'];
               $anneenaisC=$_POST['anneenaisC'];
               $lieunaisC=$_POST['lieunaisC'];
               $villeC=$_POST['villeC'];
               $quartierC=$_POST['quartierC'];
               $emailC=$_POST['emailC'];
               $cellC=$_POST['cellC'];
               //$id=$_SESSION['id']; //c'est déjà égale à $new_id
               
               echo "<h3><u> VERIFICATION AVANT ENREGISTREMENT </u></h3></br>";
               echo '<div class="col-md-4"><h3>Nom </br> Prénom </br>Date de naissance: </br>Lieu de naissance: </br>Ville </br>Quartier </br>Email </br>Cell</br>Formation numero:</div></h3>
               <h3>
                 <div class="col-md-4">'.$nomC.' </br>'.$prenomC.' </br>'.$journaisC.'-'.$moisnaisC.'-'.$anneenaisC.'</br>'.$lieunaisC.'</br> '.$villeC.' </br>'.$quartierC.'</br>'.$emailC.' </br>'.$cellC.'</br>'.$id.'</div> </h3>
                
                <h4><div class="col-md-4"> Veuillez enregistrer vos informations sans soucis.
               </br></br> Nous nous atelerons à vous informer dans un bref délais! </br></br> Nous nous atelerons à vous informer dans un bref délais!</di></h4> </br>
               
              <form method="POST" action="saveCandidats.php">
                <input type="hidden" name="nomC2" value="'.$nomC.'" />
                <input type="hidden" name="prenomC2" value="'.$prenomC.'" />
                <input type="hidden" name="journaisC2" value="'.$journaisC.'" />
                <input type="hidden" name="moisnaisC2" value="'.$moisnaisC.'" />
                <input type="hidden" name="anneenaisC2" value="'.$anneenaisC.'" />
                <input type="hidden" name="lieunaisC2" value="'.$lieunaisC.'" />
                <input type="hidden" name="villeC2" value="'.$villeC.'" />
                <input type="hidden" name="quartierC2" value="'.$quartierC.'" />
                <input type="hidden" name="emailC2" value="'.$emailC.'" />
                <input type="hidden" name="cellC2" value="'.$cellC.'" />
                <input type="hidden" name="id2" value="'.$new_id.'" /></br>
                <input class="annuler ch1" type="submit" name="annuler" value="Annuler" />
                <input class="ch2" type="submit" name="confirmer" value="Confirmer" />
               </form>';
              } 
              ?>
            </div>
          </div>
        </article>
       </div>
      </div>  
      <div class="container">  
       <div class="row">
        <article class="col-md-12 ajuste">
          <form method="POST" action="">
           <div class="panel panel-default">
            <div class="panel-heading"><h1><h2>Donnez vos références pour la validation de votre reservation!</h2></h1></div>
            <div class="panel-body">
             <div class="col-md-6">
               <div class="row">
                <div class="col-md-4">
                
                  <label>nom</label> </br><br/>
                  <label>Prénom</label> </br><br/>
                  <label>Date de naissance</label> </br><br/>
                  <label>Lieu de naissance</label> </br><br/>
                  <label>Ville</label> </br><br/>
                  <label>Quartier</label> </br><br/>
                  <label>Email</label> </br><br/>
                  <label>Cell</label> <br/><br/>
                  </div>
                  <div class="col-md-8">
                    <input type="text" name="nomC" placeholder="Votre nom" required size="40"/> <br/><br/>
                    <input type="text" name="prenomC" placeholder="Votre nom" required size="40"/> <br/><br/>
                    <!--<input type="text" name="datenais" placeholder="Date de naissance" required size="40"/> <br/><br/> 
                     
                    <label>Date de naissance</label> </br>-->
                    <!-- <input type="text" name="datenaisC"/> </br> -->
                    <select name="journaisC">
                    <?php
                     for($j = 1; $m<=31; $j++){
                      echo"<option value='$j'>$j</option>";
                     } 
                    ?>
                    </select>
                   <select name="moisnaisC">
                    <?php
                     for($m = 1; $m<=12; $m++){
                      echo"<option value='$m'>$m</option>";
                     } 
                    ?>
                   </select>
                   <select name="anneenaisC">
                   <?php
                     for($a = 2010; $a<=1940; $a--){
                      echo"<option value='$a'>$a</option>";
                     } 
                    ?>  
                   </select>
                   </br><br/>
                   
                   <input type="text" name="lieunaisC" placeholder="Lieu de naissance" required size="40"/> <br/><br/>
                   <input type="text" name="villeC" placeholder="Ville actuelle" required size="40"/> <br/><br/>
                   <input type="text" name="quartierC" placeholder="Quartier" required size="40"/> <br/><br/>
                   <input type="email" name="emailC" placeholder="Email" required size="40"/> <br/><br/>
                   <input type="text" name="cellC" placeholder="contact" required size="40"/> <br/><br/>
                   <input type="hidden" name="id" value="id"size="20"/>
                   <input type="submit" name="valider" value="valider" align="right"/>
                  </div>
                  </div>
                </div>

                <div class="col-md-6">
                  <?php echo 'Numéro: '.$id=$donnees['idF']."</br><br/><br/>";?>
                  <?php echo 'Libelle: '. $donnees['libelle']."</br><br/><br/>" ;?>
                  <?php echo 'Outil: '. $donnees['outil']."</br><br/><br/>" ;?>
                  <?php echo 'Prix: '.$donnees['prix'] ."</br><br/><br/>";?> 
                  <?php echo 'Lieu : '.$donnees['lieuF'] ."</br><br/><br/>" ;?>
                  <?php echo 'Durée: '.$donnees['dureeF']."</br><br/><br/>" ;?>
                  <?php echo 'Connaissance: '.$donnees['acquisition']."</br><br/><br/>" ;?>
                  <?php '<a href="operation_script.php?id='.$donnees['idF'].'>Suivant</a> ';?>
                </div>
              </div>
             </div>
            </form>
          </article>
         </div>
      </div>   
   
    <?php include('footer.php'); ?>
    <script src="js/jquery.js"> </script>
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>


Tu noteras que j'ai remplacé tes listes par des boucles php..
Les attributs "name" dans les "<option>" n'ont aucune utilité
J'ai déplacer ta balise form car sinon tu générais une balise form dans une form....
J'ai placé le MAXIMUM de code PHP AVANT le code HTML
J'ai utilisé dans les requêtes, les variables récupérée au dessus au lieu de remettre encore les variable $_POST
bref.. je te laisse relire par toi même le code... je ne suis pas là pour te former.
0
Bonjour Jordane45, je vous remercie bien. Malheureusement les erreurs persistent.

Voici ou elles se situent maintenant:
1- Undefined index: idC2 in C:\wamp\www\gabarit6\application\inscription_pour_formation3.php on line 74

2- Undefined variable: jourF2 in C:\wamp\www\gabarit6\application\inscription_pour_formation3.php on line 76

3- Undefined variable: moisF2 in C:\wamp\www\gabarit6\application\inscription_pour_formation3.php on line 77

4- Undefined variable: anneeF2 in C:\wamp\www\gabarit6\application\inscription_pour_formation3.php on line 78

5- Erreur ! SQLSTATE[42S22]: Column not found: 1054 Champ 'id' inconnu dans field list Les datas :

6- Undefined index: id in C:\wamp\www\gabarit6\application\inscription_pour_formation3.php on line 105
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
15 nov. 2018 à 22:38
Pour les 4 premières erreurs...
Il faut récupérer les variables AVANT de les utiliser. Je n'avais pas fait attention dans quel ordre tu avais placé le code
      $idC2=isset($_POST['idC2']) ? $_POST['idC2'] : '' ;
      $id2=isset($_POST['id2']) ? $_POST['id2'] : '';
      $jourF2=isset($_POST['jourF2']) ? $_POST['jourF2'] : '';
      $moisF2=isset($_POST['moisF2']) ? $_POST['moisF2'] : '';
      $anneeF2=isset($_POST['anneeF2']) ? $_POST['anneeF2'] : ''; 

    $sql = 'INSERT INTO inscrire(idC, id, jourF, moisF, anneeF) VALUES(:idC2, :id2, :jourF2, :moisF2, :anneeF2)';
    $datas = array(':idC2'=>$idC2, 
        ':id2'=>$new_id,
        ':jourF2'=>$jourF2,
        ':moisF2'=>$moisF2,
        ':anneeF2'=>$anneeF2);
    try  {


      $req = $bdd->prepare($sql);
      $req->execute($datas);
      echo'<h3> Inscription faite avec succès!</h3> </br><h3><a href="liste_formations.php">Faire un autre enregistrement!</a></h3>';
    }catch(Exception $e) {
      // en cas d'erreur :
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
    }


Pour la 5 et 6 ...
il te dit que le champ 'id' n'existe pas dans ta table...; à toi de savoir quels sont les champs qui se situent dans ta table "inscrire"
0
Voici les champs qui se situent dans ma table inscrire: idInscrire, idC, idF, jourF, moisF, anneeF, hdebut, hfin.
Ce sont évidement ces champs là que je cherche à remplir avec la 2e requête qui comporte actuellement les erreurs en question.
En effet je n'avais pas encore fait un truc de ce genre, c'est maintenant que j'y ai pensé, voilà pourquoi ça me fatigue.
Donc pour mieux expliquer, la table inscrire doit recevoir idC(identifiant du candidat qui est entrain de s'inscrire),
idF(identifiant de la formation que le candidat a choisi et que nous avons récupéré et traité dans la session $_SESSION['id']=$id), ensuite jourF, moiF, anneeF, hdebut et hfin.
Je veux qu'à la validation, la table Candidat reçoive également elle ces données(ça, ça marche déjà) et que tous les champs de la table Inscrire reçoivent leurs données (c'est là que se situe le problème).
Merci et toutes mes excuses pour le dérangement.
0