Page 1 sur 1

mise à jour de l'ensemble des champs

Posté : 06 mai 2010, 21:59
par jman94
Bonjour,
voilà je vous expose mon problème :

j'ai créer une base de donnée avec une table contenant des champs entiers qui a pour valeurs celles enregistrées par l'utilisateur dans un formulaire, ainsi qu'une autre table, contenant également des champs entiers, correspondant à des constantes, c'est à dire des paramètres.
Ces paramètres, l'utilisateur peut également les modifier par l'intermédiaire d'un formulaire.
Le truc c'est que je souhaiterais pouvoir enregistrer le résultat du calcul suivant : (valeur du paramètre du formulaire venant d'être saisie * valeur du champ de la table 1)
et ce pour tous les champs de la table 1 !

je fais comme ça :


$resultat=mysql_query("SELECT * FROM table1");

while ($donnees_table1=mysql_fetch_assoc($resultat)) {

$total=$_POST['parametre']*$donnees_table1['valeur'];

mysql_query("UPDATE table1 SET total='$total' ");

}

en faisant ça, tous mes champs se retrouvent avec la même valeur total...pourtant la valeur des champs de la colonne 'valeur' de la table1 n'est jamais la même...
ma question est: pouvez-vous m'aider sur la méthode à employer pour mettre à jour tous les champs d'une table en appliquant une formule dont l'une des valeurs provient d'un champ formulaire venant d'être saisis.

merci d'avance ;)

Re: mise à jour de l'ensemble des champs

Posté : 06 mai 2010, 22:25
par visualight
mysql_query("UPDATE table1 SET total='$total' ");
Je n'ai jamais essayé de mettre à jour des champs dans un while avec un update sans clause where.
Je me trompe peut être mais pour moi, le where est obligatoire pour définir ce qu'il faut mettre à jour.

Dans le WHERE, il te faut une valeur différente pour chaque enregistrements de ta base comme un ID.

Exemple :
$resultat=mysql_query("SELECT * FROM table1");

while ($donnees_table1=mysql_fetch_assoc($resultat)) {

$total=$_POST['parametre']*$donnees_table1['valeur'];
$id = $donnees_table1['id'];

mysql_query("UPDATE table1 SET total='$total' WHERE id='$id'");

}
A+ ;)

Re: mise à jour de l'ensemble des champs

Posté : 06 mai 2010, 22:41
par Invité
effectivement merci !!

je pensais que la boucle suffisait à elle même étant donné que le test effectué en paramètre de la boucle while avec mysql_fetch_assoc place le curseur sur l'entrée suivante...
mais apparemment il faut en effet affecter l'id et le placer dans le where pour préciser !

impeccable merci beaucoup :)