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
Busima - 26 nov. 2018 à 22:05
A voir également:
- Requete de remplissage de deux tables ensembles
- Deux ecran pc - Guide
- Tables des matières word - Guide
- Deux comptes whatsapp - Guide
- Itinéraire google map entre deux adresses - Guide
- Faire deux colonnes sur word - Guide
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
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
.
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
.
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
9 nov. 2018 à 20:41
Bonsoir, y a quelqu'un pour m'aider?
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
10 nov. 2018 à 07:34
Bonjour,
Tu as plusieurs erreurs...
Déjà au niveau de ta requête
TU dois mettre des AND (ou des OR) entre CHAQUE condition
par exemple
Le message est clair... le champ 'id' n'existe pas dans ta table
je suppose dans cette requête
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 :
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
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
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:
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!
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!
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
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.
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
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
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
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
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"
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"
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.
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.
8 nov. 2018 à 15:34
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.
8 nov. 2018 à 16:04
Je ne comprend pas où se trouve ton souci......
Modifié le 8 nov. 2018 à 16:33
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"
8 nov. 2018 à 16:38
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é.
Modifié le 8 nov. 2018 à 17:08
Deuxième requête
Troisième Requete
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