$_POST différent pour un champ identique

Snoofy -  
 Snoofy -
Bonjour,

Voila je suis actuellement en stage, et je dois créer une bdd de produit de stockage à mettre sur internet par l intermédiaire d'un CMS qui est joomla.

la partie du code que je vais vous montrer me permet après les requêtes sql, d'afficher un tableau avec différent champ dont un de saisi de texte, que je veut recupérer par un $_post mais plusieur fois.

$stock = $_POST['Stock'];
$id2 = $_GET['Id_Produit'];

	$sql="SELECT * FROM P_Stock WHERE Etat='En Attente'";
	$resultat = mysql_query($sql) or die('<br/>Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
	$sql2="SELECT * FROM P_Produit WHERE Id_Produit='Id_Produit'";
	$resultat2 = mysql_query($sql2) or die('<br/>Erreur SQL !<br>' . $sql . '<br>' . mysql_error());	
	
               $nom = mysql_result($resultat2, $ligne2);
	$num2 = mysql_num_rows($resultat2);	
	$num = mysql_num_rows($resultat);	
	$txt.=$num.'<br>'.$num2;
			
$var = "option=".$_REQUEST['option']."&view=".$_REQUEST['view']."&Itemid=".$_REQUEST['Itemid'];

			
$txt .= '<form method="POST" action="" name="gestion_stock">';
$txt .= '<input type="hidden" name="action" value="actif">';
			
$txt.='<table border="1" cellspacing="2" cellpadding="2" style="border-collapse: collapse" >';
				
                   $txt.= '<th>Id_Produit</th>
		<th>Date</th>
		<th>Stock</th>
		<th>Etat</th>
		<th>quantit&eacutee en Stock</th>
		<th>Nom\Synonyme</th>';
						
while($ligne = mysql_fetch_array($resultat))  // LE PROBLEME COMMENCE ICI
	{$ligne2 = mysql_fetch_array($resultat2);
						
                 $txt.='<tr><td>'
	.$id2=$ligne['Id_Produit'].'</td><td>'
	.$ligne['Date'].'</td><td>'
	.$ligne['Stock'].'</td><td>'
	.$ligne['Etat'].'</td><td>';
$txt.='<INPUT type="text" name="Stock_'.$id2.'" value='.$_POST['Stock_'.$id2.''].'></td>';
			
			
$sql2="SELECT * FROM P_Produit WHERE Id_Produit='$id2'";			
$resultat2 = mysql_query($sql2) or die('<br/>Erreur SQL !<br>' . $sql2 . '<br>' . mysql_error());		
$num2 = mysql_num_rows($resultat2);					
$ligne2 = mysql_fetch_array($resultat2);
					
$txt.='<td>'.$ligne2['Nom_Produit_Synonyme'].'</td></tr>			
	
						
					
	$txt.= '</table><br>';
	$txt.= '<INPUT type="submit" name="submit" value="Valider" ></INPUT><br>';
	$txt.= '</form>';
	

$txt.=$_POST['Stock_'.$id2.''];
		
	if (!empty($_POST['Stock_'.$id2.''])) // SE FINI LA
	{	
	$stock1 = $_POST['Stock_'.$id2.''] ;
					
	$sql = "UPDATE 'p_stock' SET Stock='$stock1' WHERE Id_Produit='$id2'";
	$resultat = mysql_query($sql) or die('<br/>Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
	$sql3 = "UPDATE 'p_stock' SET Etat='Confirmer' WHERE Id_Produit='$id2'";
	$resultat3 = mysql_query($sql3) or die('<br/>Erreur SQL !<br>' . $sql . '<br>' . mysql_error());
	$i++;
			
}
			
return $txt;





Donc ce code liste tout les produits ayant un Etat 'En Attente' sous forme de tableau avec pour chaque ligne un imput text qui est fait pour permettre à l'utilisateur de rentrer le nouveau stock pour le produit correspondant.



Cependant je n arrive pas à récupérer les $_POST[Stock_'.$id2.'] correspondant à chaque produit. donc en réalité je cherche à recupérer le même $_post mais pour des produits différents.

De plus si je supprime la concaténation de $id2 sur mes $_POST['stock_'.$id2']
je recupere un seul $_POST exploitable qui correspond à la derniere ligne de ma liste...

Si quelques bonnes âmes pouvaient me venir en aide, SVP






2 réponses

Leviathan49 Messages postés 257 Date d'inscription   Statut Membre Dernière intervention   70
 
Si tu n'as pas envie de t'amuser avec la concatenation tu peut faire des doubles quotes $_POST["Stock_$id2"].

De plus c'est normal que $id2 ne prend qu'une valeur, vu que tu lui affecte UNE SEULE valeur, vu qu'apparement $id2=$ligne['Id_Produit'] est placé hors de toute boucle, tu recupère donc la dernière valeur de id_produit.
0
Snoofy
 
Heu si je dit pas de betises Mon $id2=$ligne['Id_Produit'] est dans la boucle while qui me permet d'afficher plusieurs ligne de produit et donc plusieur input text pour que je puisse les recupéré par la suite.
0