Comment enregistrè dans une autre table de ma Base de donnèes...
Résolu
nticazig
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Apres avoir selectionè des information d'une table de la base de donnees apartir d'un formulaire j'aimerai enregistre les donnèes selectionnèes dans une autre table de la meme base de donnees.
En faite je veux mettre en place une application de gestion des notes des ètudiant.
j'ai creer deux tables Etudiant et matiere et j'ai mis des enregistrements maintenant j'ai fait un formulaire qui affiche les champs Num etudiant, etudiant, num matiere, matiere et la note., je selectionne num etudiant, etudiant, num matiere, matiere et je saisie la note. mais des que je click sur valider je me rend compte que rien n'est enregistré et j'ai beau cherché mais toujours rien.
Merci d'avance pour votre aide
voici mes code
j'utilise aussi PDO
structure de mes tables
Apres avoir selectionè des information d'une table de la base de donnees apartir d'un formulaire j'aimerai enregistre les donnèes selectionnèes dans une autre table de la meme base de donnees.
En faite je veux mettre en place une application de gestion des notes des ètudiant.
j'ai creer deux tables Etudiant et matiere et j'ai mis des enregistrements maintenant j'ai fait un formulaire qui affiche les champs Num etudiant, etudiant, num matiere, matiere et la note., je selectionne num etudiant, etudiant, num matiere, matiere et je saisie la note. mais des que je click sur valider je me rend compte que rien n'est enregistré et j'ai beau cherché mais toujours rien.
Merci d'avance pour votre aide
voici mes code
j'utilise aussi PDO
<!-- function verifyNote() { var mynote = parseFloat(document.getElementById('idnote').value); if ((mynote >= 0) && (mynote <=20)) document.myform.submit(); else alert('la note saisie est incorrecte'); } //--> </script> <?php include("connect_db.php"); include("note_moyenne.php"); ?> <body> <h1>Formulaire de saisie de notes des etudiants</h1> <form name="form1" method="POST" action="form1.php"> <fieldset> <legend>formulaire de saisie de notes</legend> <table> <tr><td>Numero Etudiant</td><td> <select name="idetudiant[]" id="idetudiant"> <?php $reponse = $bdd->query('SELECT ID_etudiant FROM Etudiant'); while ($donnees = $reponse->fetch()) { ?> <option value="<?php echo $donnees['ID_etudiant']; ?>"> <?php echo $donnees['ID_etudiant'] ; ?></option> <?php // mysql_query("INSERT INTO Note_etudiant (idnote_etudiant) VALUES("$_POST['idetudiant']")"); } ?> <tr><td>Etudiant</td><td> <select name="Etudiant[]" id="etudiant"> <?php $reponse = $bdd->query('SELECT NOM_etudiant, PRENOM_etudiant FROM Etudiant'); while ($donnees = $reponse->fetch()) { ?> <option value="<?php echo $donnees['NOM_etudiant']; ?>"> <?php echo $donnees['PRENOM_etudiant'] ,' ',$donnees['NOM_etudiant']; ?></option> <?php } ?> </select> </td></tr> <tr><td>Numero Matiere</td><td> <select name="idmatiere[]" id="idmatiere"> <?php $reponse = $bdd->query('SELECT ID_matiere FROM Matieres'); while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC)) { ?> <option value="<?php echo $donnees['ID_matiere']; ?>"> <?php echo $donnees['ID_matiere']; ?></option> <?php // mysql_query("INSERT INTO Note_etudiant (idnote_matiere) VALUES("$donnees['ID_matiere']")"); } ?> <tr><td>Matiere</td><td> <select name="matiere[]" id="matiere"> <?php $reponse = $bdd->query('SELECT * FROM Matieres'); while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC)) { ?> <option value="<?php echo $donnees['intitule_matiere']; ?>"> <?php echo $donnees['intitule_matiere'] ,' ',$donnees['coeff_matiere']; ?></option> <?php } ?> </select> </td></tr> <tr><td>Saisir la Note : </td><td><input id="idnote" name ="note"></td></tr> <tr><td></td><td><INPUT type="submit" value="VALIDER" onclick="verifyNote();"></td></tr> <tr><td></td><td><input type="reset" name="Clear" value="Effacer"> </table> </fieldset> <?php if (isset($_POST['idetudiant']) && isset($_POST['idmatiere']) && isset ($_POST['note']) && ($_POST['note']<=20) && ($_POST['note']>0)) { include("connect_db.php"); mysql_query("INSERT INTO Note_etudiant (idnote_etudiant, idnote_matiere, Note) VALUES(".$idetudiant.",".$idmatiere.",".$note.")"); } ?> </form> </body> </html>
structure de mes tables
CREATE TABLE Etudiant( ID_etudiant int NOT NULL auto_increment, NOM_etudiant varchar(40) character set latin1 collate latin1_general_ci NOT NULL, PRENOM_etudiant varchar(40) character set latin1 collate latin1_general_ci NOT NULL, PRIMARY KEY (ID_etudiant) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE Matieres ( ID_matiere int(20) NOT NULL auto_increment, intitule_matiere varchar(30) character set latin1 collate latin1_general_ci NOT NULL, coeff_matiere int(20) NOT NULL, PRIMARY KEY (ID_matiere) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE Note_etudiant ( id_note int(10) NOT NULL auto_increment, idnote_etudiant int(10) NOT NULL, idnote_matiere int(10) NOT NULL, Note float NOT NULL, PRIMARY KEY (id_note), UNIQUE KEY idnote_etudiant (idnote_etudiant,idnote_matiere) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Comment enregistrè dans une autre table de ma Base de donnèes...
- Fuite données maif - Guide
- Table ascii - Guide
- Table des matières word - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
4 réponses
Salut,
Tu ne peux pas mélanger l'utilisation de plusieurs API pour manipuler ta bdd (PDO et Mysql).
Puisque l'API Mysql est obsolète (et supprimé depuis PHP 7), tu dois donc utiliser les méthodes de PDO pour réaliser ta requête d'insertion (query ou prepare/execute).
Tu devrais facilement pouvoir trouver des tutos sur ce sujet via ton moteur de recherche préféré.
Bonne journée
Tu ne peux pas mélanger l'utilisation de plusieurs API pour manipuler ta bdd (PDO et Mysql).
Puisque l'API Mysql est obsolète (et supprimé depuis PHP 7), tu dois donc utiliser les méthodes de PDO pour réaliser ta requête d'insertion (query ou prepare/execute).
Tu devrais facilement pouvoir trouver des tutos sur ce sujet via ton moteur de recherche préféré.
Bonne journée
Merci jordan d'avoir rèpondu
j'ai utilisè PDO pour la connexion à la base de donnèes
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=nom_bdd', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
je l'ai appelé dans le formulaire
et je voulais aussi l’utilisé pour les autres requêtes mysql mais je ne suis pas pro en PDO je viens juste de le dècouvrir.
j'ai utilisè PDO pour la connexion à la base de donnèes
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=nom_bdd', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
je l'ai appelé dans le formulaire
et je voulais aussi l’utilisé pour les autres requêtes mysql mais je ne suis pas pro en PDO je viens juste de le dècouvrir.
Ton code est bourré d'erreurs....
des balises html non fermées ( des </td> , </select> ... </tr> manquants ! )
des erreurs dans le nommage de tes champs
Il est également préférable de placer le code PHP en dehors du html ( pour tout ce qui est "traitement") et il faut récupérer proprement les variables AVANT de les utiliser.
Sans parler des erreurs dans ta requête d'insert ...
Bref, voici ton code corrigé (de tête..il peut donc subsister des erreurs )
Cordialement,
Jordane
des balises html non fermées ( des </td> , </select> ... </tr> manquants ! )
des erreurs dans le nommage de tes champs
Il est également préférable de placer le code PHP en dehors du html ( pour tout ce qui est "traitement") et il faut récupérer proprement les variables AVANT de les utiliser.
Sans parler des erreurs dans ta requête d'insert ...
Bref, voici ton code corrigé (de tête..il peut donc subsister des erreurs )
<?php //----------------------------------------------------// //connexion à la bdd //----------------------------------------------------// require_once "connect_db.php"; //----------------------------------------------------// //autres includes //----------------------------------------------------// include("note_moyenne.php"); //----------------------------------------------------// //récupération des variables POST //----------------------------------------------------// $idetudiant = isset($_POST['idetudiant']) ? $_POST['idetudiant'] : NULL; $idmatiere = isset($_POST['idmatiere']) ? $_POST['idmatiere'] : NULL; $note = isset($_POST['note']) ? $_POST['note'] : NULL; //****************************************************************************// // traitement du submit //****************************************************************************// if ($idetudiant && $idmatiere && $note && $note<=20 && $note>0) { echo "Enregistrement des notes "; //le temps des tests $sql = "INSERT INTO Note_etudiant (idnote_etudiant, idnote_matiere, Note) VALUES(:idetudiant,:idmatiere,:note)"; $a_datas = array( ":idetudiant"=>$idetudiant ,":idmatiere"=>$idmatiere ,":note"=>$note ); try{ $prepare = $bdd->prepare($sql); $prepare->execute($a_datas); }catch(Exception $e) { //en cas de pb dans la requête echo "<pre><br>".$e->getMessage()."<br>"; } } //----------------------------------------------------// //Liste des étudiants: //----------------------------------------------------// $sql = "SELECT * FROM Etudiant"; $reponse = $bdd->query($sql); $arr_etudiants = $reponse->fetchAll(); //----------------------------------------------------// // Liste des matieres //----------------------------------------------------// $sql = "SELECT * FROM Matieres"; $reponse = $bdd->query($sql); $arr_matiere = $reponse->fetchAll(); ?> <body> <h1>Formulaire de saisie de notes des etudiants</h1> <form name="form1" method="POST" action=""> <fieldset> <legend>formulaire de saisie de notes</legend> <table> <tr> <td>Numero Etudiant</td> <td> <select name="idetudiant[]" id="idetudiant"> <?php foreach ($arr_etudiants as $edutiant){ echo "<option value='".$edutiant['ID_etudiant']."'> ".$edutiant['ID_etudiant']."</option>"; } ?> </select> </td> <tr> <td>Etudiant</td><td> <select name="Etudiant" id="etudiant"> <?php foreach ($arr_etudiants as $edutiant){ echo "<option value='".$edutiant['NOM_etudiant']."'> ".$edutiant['NOM_etudiant']."</option>"; } ?> </select> </td> </tr> <tr><td>Numero Matiere</td><td> <select name="idmatiere" id="idmatiere"> <?php foreach ($arr_matiere as $matiere){ echo "<option value='".$matiere['ID_matiere']."'> ".$matiere['ID_matiere']."</option>"; } ?> </select> </td> <tr><td>Matiere</td><td> <select name="matiere" id="matiere"> <?php foreach ($arr_matiere as $matiere){ echo "<option value='".$matiere['intitule_matiere']."'> ".$matiere['intitule_matiere'].' ' .$matiere['coeff_matiere']."</option>"; } ?> </select> </td> </tr> <tr> <td>Saisir la Note : </td><td><input id="idnote" name ="note"></td> </tr> <tr> <td></td><td><INPUT type="submit" value="VALIDER" onclick="verifyNote();"></td> </tr> <tr> <td></td> <td><input type="reset" name="Clear" value="Effacer"> </td> </tr> </table> </fieldset> </form> </body> </html>
Cordialement,
Jordane
Bonjour jordan,
Merci encore pour la correction
mais en ce qui concerne mon reel probleme c'est à dire
"Apres avoir selectionè des information d'une table de la base de donnees apartir d'un formulaire j'aimerai enregistre les donnèes selectionnèes dans une autre table de la
meme base de donnees."
merci de m'aider par rapport à celà
Merci encore pour la correction
mais en ce qui concerne mon reel probleme c'est à dire
"Apres avoir selectionè des information d'une table de la base de donnees apartir d'un formulaire j'aimerai enregistre les donnèes selectionnèes dans une autre table de la
meme base de donnees."
merci de m'aider par rapport à celà
Ben si tu as regardé mon code ... c'est bien cette partie là non :
??
//****************************************************************************// // traitement du submit //****************************************************************************// if ($idetudiant && $idmatiere && $note && $note<=20 && $note>0) { echo "Enregistrement des notes "; //le temps des tests $sql = "INSERT INTO Note_etudiant (idnote_etudiant, idnote_matiere, Note) VALUES(:idetudiant,:idmatiere,:note)"; $a_datas = array( ":idetudiant"=>$idetudiant ,":idmatiere"=>$idmatiere ,":note"=>$note ); try{ $prepare = $bdd->prepare($sql); $prepare->execute($a_datas); }catch(Exception $e) { //en cas de pb dans la requête echo "<pre><br>".$e->getMessage()."<br>"; } }
??