Bonjour à tous !
J'ai un problème que je n'arrive pas à résoudre avec un script.
Tout d'abord, mon script sert à afficher un système de marché ou les utilisateur peuvent vendre ou acheter des marchandises (ici du pain).
Pour ce faire, j'ai utilisé une boucle while pour ressortir toutes les entrées des utilisateurs qui ont été préalablement envoyées dans la base de donnée via un formulaire de vente.
Seulement, pour que l'utilisateur puisse acheter, j'ai integré un formulaire avec son traitement dans la boucle en croyant que de ce fait en cliquant sur le bouton "acheter" cela s'occuperait de la denrée affichée. Ce n'est pas faux !
Cependant, lorsqu'on a plusieurs fois la denrée affichée avec un prix et un nombre différent, lorsque l'on clique sur le bouton "acheter", le formulaire traite toute les mises en vente de cette denrée.
Voici un petit screen pour que vous y voyez plus clair !
Vous pouvez constater qu'il y a des miches de pain mises en vente par 4 utilisateurs différents. Le problème est lorsque je veux acheter par exemple la miche de pain à 50 pièces, le formulaire traite l'achat des 3 miches à 4 et 5 pièces également !!
Bref, voici une partie du code avec en rouge le passage problèmatique :
$rq = "SELECT pain, painn, painp FROM marche WHERE village='$village'";
$result = @mysql_query ($rq);
while ($pain = mysql_fetch_array ($result))
{
if ($pain[0] !== "0" )
{
echo "<tr>";
echo "<td width='33%' height='12'><p align='center'>Miches de pain</td>";
echo "<td width='33%' height='12'><p align='center'>$pain[0]</td>";
echo "<td width='33%' height='12'><p align='center'>$pain[2] pièces</td>";
echo "<td width='34%' height='12' valign='middle'>";
echo "<form method='POST' action='marche_comtal.php'>";
echo "<p align='center'><select size='1' name='nombre' />";
for ($i = 1; $i <= $pain[0]; $i++)
{
echo "<option value='$i'>$i</option>";
}
echo "</select><input type='submit' value='Acheter' name='submit_pain' />";
echo "</form>";
echo "</td>";
echo "</tr>";
if (isset($_POST['submit_pain']))
{
// traiter l'achat
etc...
Merci d'avance à ceux qui essayeront de m'aider.
@++
Message édité par SeigneurMartin le 20-09-2006 à 23:26:30