Enregistrement multiple a partir d'un tableau
Fermé
bonjours a toutes et tous,
J'aimerai savoir comment faire un multi-enregistrement dans une base de données plus prescicement dans un même champs. Les données sont dans un tableau qui m'affiche une liste d'étudiant et une case vide dans la quel je doit remplir une appréciation pour chacun d'entre eux.
Mon tableau tire la liste des étudiants a partir d'une boucle WHILE. J'ai la possibilité de remplir pour chaque étudiant une appréciation dans le tableau et pour chacun d'entre eux j'aimerai enregistrer leurs noms, prénoms et appréciation en même temps.
Le problème qui ce pose et qu'il enregistre tous simplement le dernier étudiant et ne prend pas en compte les autres. merci
J'aimerai savoir comment faire un multi-enregistrement dans une base de données plus prescicement dans un même champs. Les données sont dans un tableau qui m'affiche une liste d'étudiant et une case vide dans la quel je doit remplir une appréciation pour chacun d'entre eux.
Mon tableau tire la liste des étudiants a partir d'une boucle WHILE. J'ai la possibilité de remplir pour chaque étudiant une appréciation dans le tableau et pour chacun d'entre eux j'aimerai enregistrer leurs noms, prénoms et appréciation en même temps.
Le problème qui ce pose et qu'il enregistre tous simplement le dernier étudiant et ne prend pas en compte les autres. merci
A voir également:
- Enregistrement multiple a partir d'un tableau
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
- Trier un tableau excel - Guide
11 réponses
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
1 août 2014 à 20:31
1 août 2014 à 20:31
Salut :)
Ta requete et situé dans le while ou aprés le while ?
Ta requete et situé dans le while ou aprés le while ?
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
1 août 2014 à 21:09
1 août 2014 à 21:09
me la dans le while ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
1 août 2014 à 23:16
1 août 2014 à 23:16
tu as essayé avec un for ? au lieu d'un while
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
2 août 2014 à 10:10
2 août 2014 à 10:10
tu peux m'envoyé ton code ?
<form method="GET" action="index41.php">
<table BORDER="1">
<CAPTION> <?php echo "LISTE DE LA CLASSE ".$tes." ";?> </CAPTION>
<tr>
<th><h5>Nom Etudiant</h5></th>
<th><h5>Prenom Etudiant</h5></th>
<th><h5>Nom devoire</h5></th>
<th><h5>Type de devoire</h5></th>
<th><h5>Note sur <?php echo "".$n." ";?></h5></th>
<th><h5>Coefficient</h5></th>
</tr>
<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
while($donnees = mysql_fetch_array($reponse))
{
?>
<tr>
<th><input type="text" value="<?PHP echo $donnees["nomet"];?>" readonly name="nometudiant"/></th>
<th><input type="text" value="<?PHP echo $donnees["prenomet"];?>" readonly name="prenometudiant"/></th>
<input type="hidden" value="<?PHP echo $donnees['numetud'];?>" name="idetudiant" />
<th><input type="text" value="<?PHP echo $_POST["ndd"];?>" readonly name="ndd1"/></th>
<th><input type="text" value="<?PHP echo $_POST["tdd"];?>" readonly name="tdd1"/></th>
<th><input type="text" value="" class="champs" name="nt"/></th>
<th><input type="text" value="<?PHP echo $_POST["coefi"];?>" class="champs" readonly name="coefi1"/></th>
<input type="hidden" value="<?PHP echo $_POST["annee"]."-".$_POST["mois"]."-".$_POST["jour"];?>" name="annee1"/>
<input type="hidden" value="<?PHP echo $_POST["slm"];?>" class="champs" readonly name="slm1"/>
<input type="hidden" value="<?PHP echo $_POST["mldn"];?>" class="champs" readonly name="mldn1"/>
<input type="hidden" value="<?PHP echo $_POST["semes"];?>" readonly name="semes1"/>
<input type="hidden" value="MOYENNE CC" readonly name="qwer"/>
<input type="hidden" value="NO RECLAME" readonly name="easy"/>
<input type="hidden" value="<?PHP echo $_POST["cle"];?>" readonly name="clee"/>
</tr>
<?php
}
?>
<tr>
<td><a href="index41.php?id=<?php echo $donnees["numetud"];?>"> <input type="submit" value="ENREGISTRER" name="enregistre" /></a></td>
</tr>
<tr>
<?php
} mysql_close();?>
</table>
</form>
<table BORDER="1">
<CAPTION> <?php echo "LISTE DE LA CLASSE ".$tes." ";?> </CAPTION>
<tr>
<th><h5>Nom Etudiant</h5></th>
<th><h5>Prenom Etudiant</h5></th>
<th><h5>Nom devoire</h5></th>
<th><h5>Type de devoire</h5></th>
<th><h5>Note sur <?php echo "".$n." ";?></h5></th>
<th><h5>Coefficient</h5></th>
</tr>
<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
while($donnees = mysql_fetch_array($reponse))
{
?>
<tr>
<th><input type="text" value="<?PHP echo $donnees["nomet"];?>" readonly name="nometudiant"/></th>
<th><input type="text" value="<?PHP echo $donnees["prenomet"];?>" readonly name="prenometudiant"/></th>
<input type="hidden" value="<?PHP echo $donnees['numetud'];?>" name="idetudiant" />
<th><input type="text" value="<?PHP echo $_POST["ndd"];?>" readonly name="ndd1"/></th>
<th><input type="text" value="<?PHP echo $_POST["tdd"];?>" readonly name="tdd1"/></th>
<th><input type="text" value="" class="champs" name="nt"/></th>
<th><input type="text" value="<?PHP echo $_POST["coefi"];?>" class="champs" readonly name="coefi1"/></th>
<input type="hidden" value="<?PHP echo $_POST["annee"]."-".$_POST["mois"]."-".$_POST["jour"];?>" name="annee1"/>
<input type="hidden" value="<?PHP echo $_POST["slm"];?>" class="champs" readonly name="slm1"/>
<input type="hidden" value="<?PHP echo $_POST["mldn"];?>" class="champs" readonly name="mldn1"/>
<input type="hidden" value="<?PHP echo $_POST["semes"];?>" readonly name="semes1"/>
<input type="hidden" value="MOYENNE CC" readonly name="qwer"/>
<input type="hidden" value="NO RECLAME" readonly name="easy"/>
<input type="hidden" value="<?PHP echo $_POST["cle"];?>" readonly name="clee"/>
</tr>
<?php
}
?>
<tr>
<td><a href="index41.php?id=<?php echo $donnees["numetud"];?>"> <input type="submit" value="ENREGISTRER" name="enregistre" /></a></td>
</tr>
<tr>
<?php
} mysql_close();?>
</table>
</form>
j ai utilitser laa methode get (celui la concerne les notes)
<?php
$idetudiant = $_GET["idetudiant"];
$nom= $_GET["nometudiant"];
$prenom= $_GET["prenometudiant"];
$devoir= $_GET["ndd1"];
$categorie= $_GET["tdd1"];
$note= $_GET["nt"];
$coef= $_GET["coefi1"];
$date= $_GET["annee1"];
$modul= $_GET["slm1"];
$lnote=$_GET["mldn1"];
$type=$_GET["qwer"];
$clas=$_GET["clee"];
$lol=$_GET["easy"];
$sem= $_GET["semes1"];
$ins= $_SESSION["inst"];
$requete6 = "insert into note values ('','$nom','$prenom','$idetudiant','$devoir','$categorie','$note','$date','$coef','$modul','$lnote','$type','$clas','$lol','$sem','$ins')";
$execution6 = mysql_query($requete6);
if($execution6)
{
echo "<h3>Vous venez de d'inserer des notes aux etudiant de la classe. <a href='index4.php'>Cliquez ici</a> pour renseigner une note d'evaluation </h3>";
}
else
{
echo "<p>impossible, revoyer les parametres </p>";
}
?>
</div>
<?php
$idetudiant = $_GET["idetudiant"];
$nom= $_GET["nometudiant"];
$prenom= $_GET["prenometudiant"];
$devoir= $_GET["ndd1"];
$categorie= $_GET["tdd1"];
$note= $_GET["nt"];
$coef= $_GET["coefi1"];
$date= $_GET["annee1"];
$modul= $_GET["slm1"];
$lnote=$_GET["mldn1"];
$type=$_GET["qwer"];
$clas=$_GET["clee"];
$lol=$_GET["easy"];
$sem= $_GET["semes1"];
$ins= $_SESSION["inst"];
$requete6 = "insert into note values ('','$nom','$prenom','$idetudiant','$devoir','$categorie','$note','$date','$coef','$modul','$lnote','$type','$clas','$lol','$sem','$ins')";
$execution6 = mysql_query($requete6);
if($execution6)
{
echo "<h3>Vous venez de d'inserer des notes aux etudiant de la classe. <a href='index4.php'>Cliquez ici</a> pour renseigner une note d'evaluation </h3>";
}
else
{
echo "<p>impossible, revoyer les parametres </p>";
}
?>
</div>
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
2 août 2014 à 14:23
2 août 2014 à 14:23
il me faudrai le nom de tes champs de ta table ;)
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
Modifié par mandolorien le 2/08/2014 à 14:40
Modifié par mandolorien le 2/08/2014 à 14:40
ok donc voila je t'ai saisi un script , mais étant donné que je connais presque rien de ton tableau etc , je ne suis pas sur que ca fonctionne , voila test ceci :
Admire la personne qui te critique , car prisonniere de ca propre jalousie elle ne fais que t admirer
<?php #variables $idetudiant = intval($_GET["idetudiant"]); $nom= $_GET["nometudiant"]; $prenom= $_GET["prenometudiant"]; $devoir= $_GET["ndd1"]; $categorie= $_GET["tdd1"]; $note= $_GET["nt"]; $coef= $_GET["coefi1"]; $date= $_GET["annee1"]; $modul= $_GET["slm1"]; $lnote=$_GET["mldn1"]; $type=$_GET["qwer"]; $clas=$_GET["clee"]; $lol=$_GET["easy"]; $sem= $_GET["semes1"]; $ins= $_SESSION["inst"]; $num_rows = mysql_num_rows($reponse); #si c'est dans une BDD $num_rows = intval(count($reponse)); #si c'est un tableaux array $QryInsert = "INSERT INTO note "; $QryInsert .= "("; for($i=0;$i<=$num_rows;$i++) { if(isset($reponse[$i])) { $QryInsert .= "'acompt',"; $QryInsert .= "'nomet',"; $QryInsert .= "'prenomet',"; $QryInsert .= "'numetud',"; $QryInsert .= "'nom_dev',"; $QryInsert .= "'note',"; $QryInsert .= "'date_execut',"; $QryInsert .= "'coef',"; $QryInsert .= "'nomm',"; $QryInsert .= "'note_sur',"; $QryInsert .= "'type',"; $QryInsert .= "'nomcl',"; $QryInsert .= "'rec',"; $QryInsert .= "'sem',"; $QryInsert .= "'inst',"; } } $QryInsert = substr($QryInsert,0,-1);#on enleve le dernier caractere $QryInsert .= ") VALUE ("; for($i=0;$i<=$num_rows;$i++) { if(isset($reponse[$i])) { $QryInsert .= "'".$nom."',"; $QryInsert .= "'".$prenom."',"; $QryInsert .= "'".$idetudiant."',"; $QryInsert .= "'".$devoir."',"; $QryInsert .= "'".$categorie."',"; $QryInsert .= "'".$note."',"; $QryInsert .= "'".$date."',"; $QryInsert .= "'".$coef."',"; $QryInsert .= "'".$modul."',"; $QryInsert .= "'".$lnote."',"; $QryInsert .= "'".$type."',"; $QryInsert .= "'".$clas."',"; $QryInsert .= "'".$lol."',"; $QryInsert .= "'".$sem."',"; $QryInsert .= "'".$ins."',"; } } $QryInsert = substr($QryInsert,0,-1);#on enleve le dernier caractere $QryInsert .= ");"; $execution6 = mysql_query($QryInsert);
Admire la personne qui te critique , car prisonniere de ca propre jalousie elle ne fais que t admirer
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
2 août 2014 à 14:47
2 août 2014 à 14:47
j'aimerai savoir si c'est stocker dans un tableaux array si oui , tu n'as pas besoin des $_GET :)
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
2 août 2014 à 14:56
2 août 2014 à 14:56
$reponse viens d'ou ? ^^'
car la je comprend pas trés bien , tes eleves sont stocker ou ? dans une base de données ? si oui ca veux dire qu'il faut faire un Update et non pas un INSERT :)
eclaire moi le plus possible
car la je comprend pas trés bien , tes eleves sont stocker ou ? dans une base de données ? si oui ca veux dire qu'il faut faire un Update et non pas un INSERT :)
eclaire moi le plus possible
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
3 août 2014 à 10:31
3 août 2014 à 10:31
Oupsss , tu pourrais m'expliquer le nom de tes champs de ta BDD ? en particulier :
acompt,nom_dev,nomm,note_sur,type,nomcl,rec,sem,inst :)
acompt,nom_dev,nomm,note_sur,type,nomcl,rec,sem,inst :)
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
8 août 2014 à 19:42
8 août 2014 à 19:42
oui je réecris ton fichier :)
mandolorien
Messages postés
109
Date d'inscription
dimanche 9 septembre 2012
Statut
Membre
Dernière intervention
9 mars 2018
3
11 août 2014 à 12:38
11 août 2014 à 12:38
voila j'ai revu ton fichier bien qu'il y a certains points qui ne concordes pas , de ce faite , je suis pas sure que ca fonctionne mais essaye ceci :
si tu ne comprends pas le code n'hesites pas à me demander , il ne te reste plus que la requete Update à faire :)
<?php session_start(); // variante 2 : avec localhost $link = mysql_connect('localhost', 'root', ''); if (!$link) { die('Connexion impossible : ' . mysql_error()); } else { mysql_select_db('ccm', $link) or die('Could not select database.'); $tes = "exemple"; $n = "20"; $reponse = mysql_query("SELECT * FROM note"); } ?> <table BORDER="1"> <CAPTION> <?php echo "LISTE DE LA CLASSE ".$tes." ";?> </CAPTION> <tr> <th><h5>Nom Etudiant</h5></th> <th><h5>Prenom Etudiant</h5></th> <th><h5>Nom devoire</h5></th> <th><h5>Type de devoire</h5></th> <th><h5>Note sur <?php echo "".$n." ";?></h5></th> <th><h5>Coefficient</h5></th> </tr> <?php //On affiche les lignes du tableau une à une à l'aide d'une boucle while($donnees = mysql_fetch_array($reponse)) { ?> <form method="post" action="index.php?etudiant=<?PHP echo htmlentities($donnees['acompt']);?>"> <tr> <th><?PHP echo htmlentities($donnees["nomet"]);?><input type="hidden" value="<?PHP echo htmlentities($donnees["nomet"]);?>" readonly name="nometudiant"/></th><!-- nom étudiant --> <th><?PHP echo htmlentities($donnees["prenomet"]);?><input type="hidden" value="<?PHP echo htmlentities($donnees["prenomet"]);?>" readonly name="prenometudiant"/></th><!-- nom prénom --> <th><input type="text" name="ndd1"/></th><!-- nom du devoir --> <th><input type="text" name="tdd1"/></th><!-- type du devoir --> <th><input type="text" class="champs" name="nt"/></th><!-- note --> <th><input type="text" class="champs" name="coefi1"/></th><!-- coef --> </tr> <tr> <td colspan="6"> <center> <input type="submit" value="ENREGISTRER" name="enregistre" /> <input type="hidden" value="<?PHP echo htmlentities($donnees['acompt']);?>" name="idetudiant" /><!-- numéro étudiant --> </center> </td> </tr> </form> <tr> <?php } mysql_close();?> </table> <?php if(isset($_GET['etudiant']) && !empty($_GET['etudiant']) && is_numeric($_GET['etudiant'])) { // variante 2 : avec localhost $link = mysql_connect('localhost', 'root', ''); if (!$link) { die('Connexion impossible : ' . mysql_error()); } else { mysql_select_db('ccm', $link) or die('Could not select database.'); } # faire une requete si l'utilitaeur existe $verification = mysql_query("SELECT * FROM note WHERE acompt ='".intval($_GET['etudiant'])."'"); $verif = mysql_num_rows($verification); if($verif > 0) { if($_GET['etudiant'] == $_POST['idetudiant']) { # est que le bouton à était cliqué if(isset($_POST["enregistre"])) { # est ce que les variables existes if(isset($_POST['tdd1']) && isset($_POST['ndd1']) && isset($_POST['nt']) && isset($_POST['coefi1'])) { # estce qu'elles ne sont pas cies if(!empty($_POST['tdd1']) && !empty($_POST['ndd1']) && !empty($_POST['nt']) && !empty($_POST['coefi1'])) { $tdd1 = htmlentities($_POST['tdd1'],ENT_QUOTES); $ndd1 = htmlentities($_POST['ndd1'],ENT_QUOTES); $note = intval($_POST['nt']); $coef = intval($_POST['coefi1']); # requete update à faire var_dump($tdd1); var_dump($ndd1); var_dump($note); var_dump($coef); } } } } else { echo "problème , veuillez contacter l'administrateur"; } } else { echo "il n'existe pas d'étudiant avec cette ID ! "; } } else { echo "ce n'est pas un nombre"; } ?>
si tu ne comprends pas le code n'hesites pas à me demander , il ne te reste plus que la requete Update à faire :)
Modifié par mht le 1/08/2014 à 20:47