Bonjour,
je dois réaliser une application qui affiche la quantité d'articles restant à vendre pour chaque article. Pour faire ça, j'ai créé une table MySQL du type :Ensuite, j'ai créé une page qui permet de sélectionner les articles que l'on veut acheter (article.php):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 article varchar(30) nb_article tinyint(4)et une page qui met à jour la table (demandearticle.php)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $sql='select article from articles'; $sql = stripslashes($sql); $result = mysql_query($sql) or die(mysql_error()); echo "Articles à acheter :<br>"; echo '<form action="demandearticle.php" method="post" enctype="application\/x-www-form-urlencoded">'; while($ligne = mysql_fetch_array($result, MYSQL_NUM)) { echo ' <input type="checkbox" name="article[]" value="'.$ligne[0].'"/>'.$ligne[0]."<br>"; } echo "<center><input name=\"submit\" value=\"Exécuter\" type=\"submit\"></center>"; echo "</form>";Le problème, c'est que ça marche super mal : si on ne coche qu'un seul article, il ne se passe rien ; par contre, si on en coche 2 (pour tester, j'ai mis 3 articles dans la table), les 3 sont décrémentés (comme si on les achetait tous). Qu'est-ce qui ne va pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $sql='select article,nb_article from articles'; $sql = stripslashes($sql); $result = mysql_query($sql) or die(mysql_error()); echo "<br>"; while($ligne = mysql_fetch_array($result, MYSQL_NUM)) { if (isset($_POST["article"][$i++])) { $sql="UPDATE articles SET nb_article = nb_article -1;"; $result1 = mysql_query($sql)or die(mysql_error());} } $sql='select article,nb_article from articles'; $sql = stripslashes($sql); $result = mysql_query($sql) or die(mysql_error()); while($ligne = mysql_fetch_array($result, MYSQL_NUM)) echo "Pour l'article ".$ligne[0]." le nb d'articles restants est : ".$ligne[1]."<br>";
Partager