Enregistrement multiple a partir d'un tableau

Fermé
mht - 1 août 2014 à 16:48
 mht - 12 août 2014 à 01:50
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

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
Salut :)
Ta requete et situé dans le while ou aprés le while ?
0
ma requete se trouve apres le while
0
ma requete se trouve apres le while
0
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
me la dans le while ;)
0
c'est toujours la meme chose
0
ok j essaye sa toute de suite
0

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

Posez votre question
c'est toujour la meme chose
0
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
tu as essayé avec un for ? au lieu d'un while
0
non
0
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
tu peux m'envoyé ton code ?
0
<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>
0
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>
0
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
il me faudrai le nom de tes champs de ta table ;)
0
acompt, nomet, prenomet, numetud, nom_dev, note, date_execut, coef, nomm, note_sur, type, nomcl, rec, sem, inst
0
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
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 :

<?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
0
ok je vais essayer je t y revien ;)
0
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
j'aimerai savoir si c'est stocker dans un tableaux array si oui , tu n'as pas besoin des $_GET :)
0
c'est dans un tableau <table> avec la boucle While
0
il y a des erreus avec les lignes suivante :

$num_rows = mysql_num_rows($reponse); #si c'est dans une BDD
$num_rows = intval(count($reponse));
0
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
$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
0
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
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 :)
0
acompt : pour l'auto incrementation
nom_dev : pour l'intituler du devoire
nomm : nom du module
note_sur : la note limite
type : le type de devoire
nomcl : le nom de la class
rec : reclamation
sem : semestre
inst : institut
0
toujours la meme erreure mandolorien :/
0
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
oui je réecris ton fichier :)
0
ok ;)
0
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
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 :

<?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 :)
0
ok merci Mandolorien
0