Ok, c'est plus propre déjà, on a bientôt fini !
Tes modifications m'ont permi de comprendre ce que tu essayes de faire en plus, et d'identifier exactement tous tes problèmes !
En fait, je vais t'expliquer le dilemne. Tu as N formulaires, chacun permettant la modification d'une seule valeur. C'est un choix, mais laisse moi t'expliquer toutes les alternatives qui s'offrent à toi pour gérer ce que tu veux faire :
1ère solution : Tu fais un seul formulaire qui te permet d'acheter toutes les troupes d'un coup !
Tu obtiens le formulaire suivant :
<form action="…" method="post" >
<input type="text" name="truc1" value="0" /> Acheter des truc1
<input type="text" name="truc2" value="0" /> Acheter des truc2
…
<input type="submit" name="ok" value="Acheter" />
</form>
Ensuite, dans ton code php, tu vérifies si le formulaire a été posté et tu insères tout d'un coup :
if( isset($_POST['ok']) ) // Le formulaire a-t-il été posté ?
{
$truc1 = empty($_POST['truc1']) ? 0 : intval($_POST['truc1']);
$truc2 = empty($_POST['truc2']) ? 0 : intval($_POST['truc2']); // On vérifie la validité des champs de formulaire ainsi que leur nature (entier, chaine, …), et par défaut, on les met à 0, si un malin veut acheter une quantité de '56ok6g' de truc1 :)
…
mysql_query('UPDATE trucs SET truc1 = truc1+' . $truc1 . ', truc2 = truc2+' . $truc2 . ' WHERE machin = ' . $machin . ';'); // Puisque machin a acheté des trucs :D
}
2nde solution : Tu fais un formulaire qui te permet d'acheter un type de troupes.
Tu obtiens le formulaire suivant :
<form action="…" method="post" >
Truc à acheter : <select name="truc">
<option value="truc1">Acheter des truc1</option>
<option value="truc2">Acheter des truc2</option>
…
</select>
Quantité de trucs à acheter : <input type="text" name="nb" value="0" />
<input type="submit" name="ok" value="Acheter" />
</form>
Et dans le code tu obtiens ceci :
if( isset($_POST['ok']) ) // Le formulaire a-t-il été posté ?
{
$nb = empty($_POST['nb']) ? 0 : intval($_POST['nb']);
$truc = empty($_POST['truc']) ? '' : $_POST['truc'];
if( $nb && in_array($truc, array('truc1', 'truc2', …)) ) mysql_query('UPDATE trucs SET ' . $truc . '=' . $truc . '+' . $nb . ' WHERE machin = ' . $machin . ';');
}
3ème solution : Un champ submit pour chaque type de troupe.
Personnellement, je te déconseillerais cette solution beaucoup plus lourde lors de l'exécution (notamment on ne peut pas tout acheter d'un coup), mais bon, tu es majeur et conscentant donc bon, tu fais ce que tu veux…
Tu obtiens le formulaire suivant :
<form action="…" method="post" >
<input type="submit" name="truc1" value="Acheter" /> Acheter des truc1
<input type="submit" name="truc2" value="Acheter" /> Acheter des truc2
…
</form>
Et ce code ci
$truc = array_intersect_key($_POST, array('truc1'=>'', 'truc2'=>''));
if( !empty($truc) )
{
mysql_query('UPDATE trucs SET ' . $truc[0] . '=' . $truc[0] . '+1 WHERE machin = ' . $machin . ';');
}
Il y a encore énormément d'autres solutions, mais beaucoup sont des variantes de celles ci. Personnellement, je te conseillerais la première, qui peut être encore plus puissante que ça avec quelques modifications.