Aide pour php repetition du bouton form

Fermé
yusukessj Messages postés 267 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 4 janvier 2014 - 7 oct. 2008 à 11:07
yusukessj Messages postés 267 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 4 janvier 2014 - 16 oct. 2008 à 21:37
Bonjour, je suis bloqué dans mon script php
voila, je veux qu'un enseignant accède à la base de donnée et enregistre les note de ses élève
j'ai pu faire le script pour qu'il regarde ses élève, pour enregistrer les notes j'ai fait cela :


$result = mysql_query( "select nom, tab_etudiant.id from tab_etudiant where specialite= '$hiddenid'" );

while ($donnees = mysql_fetch_array($result))
{

echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';

echo "<input type=\"text\" name=\"nota\" >";



echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";

echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";



}
et la page cible mo_phage c'est :



$hiddenid = $_POST['hiddenid_eleve'];

$nota = mysql_real_escape_string(htmlspecialchars($_POST['nota'])); // De même pour le message

$query ="UPDATE tab_etudiant SET note_etud= '$nota' WHERE id = '" . $hiddenid . "'";

mysql_query($query) ;

echo "merci de taper les note de l etudiant";



le problème c'est qu'il m'affiche cela

http://94.img.v4.skyrock.net/94f/hachine/pics/2037175601_1.jpg

et moi je veux qu'il affiche cela
http://94.img.v4.skyrock.net/94f/hachine/pics/2037177251_1.jpg
A voir également:

12 réponses

societeserieuse Messages postés 172 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 3 décembre 2008 7
7 oct. 2008 à 11:09
while ($donnees = mysql_fetch_array($result))
{

echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';

echo "<input type=\"text\" name=\"nota\" >";



echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";


}
echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";
-1
yusukessj Messages postés 267 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 4 janvier 2014 16
7 oct. 2008 à 18:37
je vous remerci pour votre aide, mais comme ça ca n'enregistre que le dernier élève : la dernière note,
les autres ne s'enregistre pas
-1
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
7 oct. 2008 à 18:51
Il y a une grosse faute ici :
while ($donnees = mysql_fetch_array($result))
{

echo "<form action=\"mo_phage.php\" method=\"post\" >";
echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';

echo "<input type=\"text\" name=\"nota\" >";



echo "<input type=\"hidden\" value='".$donnees['id']."' name=\"hiddenid_eleve\">";

echo " <input type=\"submit\" name=\"Submit\" value=\"VALIDER\"> ";
echo "</form>";



} 

tu dois mettre
echo "<form action=\"mo_phage.php\" method=\"post\" >";
et
echo "</form>";
hors du while sinon a chaque nouvelle donnée, tu as un nouveau formulaire.
-1
yusukessj Messages postés 267 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 4 janvier 2014 16
7 oct. 2008 à 18:54
oui, quand je fais ça j'ai un seul bouton, mais il n'enregistre qu'un seul enregistrement, le dernier c'est tout !!
-1

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

Posez votre question
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
7 oct. 2008 à 19:12
Ha oui, j'avais mal compris. je suis bête ^^"

en fait Si j'ai bien compris, il y a un certain nombre de ligne dans la table a modifier en même temps.

Je réfléchi vite mais je pense qu'il faut mettre une boucle dans la page mo_phage.php pour faire passer tous les élèves 1 par 1.

pour éviter les confusion pour les $_POST, il faut alors incrémentée un nombre pour modifier le nom des champ a chaque entrée.

Voila le code di moi si sa marche.
page 1 :
<?php
$result = mysql_query( "select nom, tab_etudiant.id from tab_etudiant where specialite= '$hiddenid'" );

$i = 1;//on crée la variable $i

echo '<form action="mo_phage.php" method="post" >';

while ($donnees = mysql_fetch_array($result))
{
	echo '<p><strong>' . $donnees['nom'] . '</strong> </p>';
	
	echo '<input type="text" name="nota_'.$i.'" >';
	
	echo '<input type="hidden" value='.$donnees['id'].' name="hiddenid_eleve_'.$i.'">';

$i++;//on incrémente la variable.
}
echo '<input type="hidden" value='.$i.' name="i">'; // on enregistre le dernier $i.
echo '<input type="submit" name="Submit" value="VALIDER">';
echo '</form>';
?>

page mo_phage.php
<?php

for ($i = 1; $i >= $_POST['i']; $i++)
{
	if (!empty($_POST['hiddenid_eleve'.$i]))
	{
	$hiddenid = $_POST['hiddenid_eleve'.$i];
	
	$nota = mysql_real_escape_string(htmlspecialchars($_POST['nota'.$i]));
	
	mysql_query("UPDATE tab_etudiant SET note_etud='$nota' WHERE id='$hiddenid'") ;
	}
	else
	{
		die ('merci de taper les note de l etudiant');
	}
}
?>


-1
yusukessj Messages postés 267 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 4 janvier 2014 16
7 oct. 2008 à 19:41
merci, j'ai fais comme vous m'avait dit, mais maintenant rien n'est enregistrer dans ma table
-1
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
7 oct. 2008 à 19:49
Il n'y a aucun message d'erreur?

sinon, je sais pas t'aider :s
-1
yusukessj Messages postés 267 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 4 janvier 2014 16
7 oct. 2008 à 20:05
euhh non, il n'ya aucun message d'erreur
je vous remerci beaucoups pour votre aide ^^
-1
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
7 oct. 2008 à 20:48
Bon j'aime pas laisser un plan pas fini alors voilà ce que je te propose :

Faire un formulaire pour modifier la notes des élèves 1 à 1
donc 1 seul formulaire par page avec seulement 1 élève par formulaire.

faire simple en quelque sorte :p
-1
yusukessj Messages postés 267 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 4 janvier 2014 16
7 oct. 2008 à 21:09
oui c'est une idée, merci beaucoups ^^
-1
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
15 oct. 2008 à 18:53
J'ai une bonne nouvelle.
Mon frère m'a un peu expliqué car je devais faire un panier virtuel.
voici mon code.
Dedans j'utilise des SESSION mais le principe est le même, tu devras un peu adapté le code.

//Ajout des données dans la table eyself_achat
		$login = $_SESSION['login'];
		
		$n = 1;
		for ($numLine = 1; isset($_POST['nombre_produit'.$numLine]); $numLine++)
		{
			$id_produit = $_SESSION['id_produit'.$n];
			$nom_produit = $_SESSION['nom_produit'.$n];
			$prix = $_SESSION['prix'.$n];
			$nbr_achat = $_SESSION['nbr_achat'.$n];
			$taille = $_SESSION['taille'.$n];
			$couleur = $_SESSION['couleur'.$n];
			
			$result = mysql_query("INSERT INTO eyself_achat (login,nom_produit,taille,couleur,nombre_produit,prix,date) VALUES('$login', '$nom_produit', '$taille', '$couleur', '$nbr_achat', '$prix', NOW())");
			
			$n++;
		}
		echo 'Votre commande a bien été enregistré.';
		
$n = 1;
	$numLine = 1;
	$prixtot = 0;
	
	if (isset($_SESSION['compteur'.$n]))
	{
		//Pagination
		include ('../includes/pagination.php');
		?>
		<form method="POST" action="">
		<table>
			<tr>
				<th>Nom</th>
				<th>Prix unitaire</th>
				<th>Quantité</th>
				<th>Prix total</th>
				<th>Supprimer</th>
			</tr>
		<?php
		while (isset($_SESSION['compteur'.$n]))
		{
		?>
			<tr>
				<td><?php echo $_SESSION['nom_produit'.$n];?></td>
				<td><?php echo $_SESSION['prix'.$n].' €';?></td>
				<td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit' . $numLine . '" value="'.$_SESSION['nbr_achat'.$n].'" />';?></td>
				<td><?php echo $_SESSION['prix'.$n] * $_SESSION['nbr_achat'.$n].' €';?></td>
				<td><a href="?page=commander&mod=<?php echo $_SESSION['id_produit'.$n];?>"></a></td>
			</tr>
		<?php
		$prix = $_SESSION['prix'.$n] * $_SESSION['nbr_achat'.$n];
		$prixtot = $prix + $prixtot;
		
		//Incrémentation
		$numLine++;
		$n++;
		}
		?>
			<tr>
				<td></td>
				<td><input type="submit" name="recalculer" value="recalculer" /></td>
				<td>Total :</td>
				<td><?php echo $prixtot.' €';?></td>
			<tr>
			<tr>
				<td colspan="5"><input type="submit" name="valider" value="valider" /></td>
			</tr>
		</table>
		</form>
	<?php
	}
	else
	{
		echo '<h2 style="text-align:center;">Votre panier est vide.</h2>';
	}

C'est une partie du code mais normalement tu a tout ce qu'il faut.
-1
yusukessj Messages postés 267 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 4 janvier 2014 16
16 oct. 2008 à 21:37
je te remerci beaucoups pour ton aide, je vais voir ton script et le modifier merci beaucoups
-1