Mise a jour de données
Résolu
polo
-
polo -
polo -
Bonjour,
j'ai une table de ce style
enregistrement 1 , valeur1 , valeur2 , id
enregistrement 2 , valeur1 , valeur2 , id
enregistrement 3 , valeur1 , valeur2 , id
enregistrement 4 , valeur1 , valeur2 , id
...
donc je voudrais que toutes les valeurs 1 et 2 de chaque id soit mis a jour par une augmentation commune ... mon soucis c'est que les valeur de chaque id sont modifié et prennent toutes les données de la première valeur alors qu'a la base elles sont ou peuvent être différente
Voici mon code
<?php
mysql_connect("...","...","...") or die ("Erreur lors de connexion a la bdd 1");
mysql_select_db("...") or die ("Erreur lors de connexion a la bdd 2");
$plus1=50000;
$plus2=1;
$reponse = mysql_query("SELECT * FROM Table1 ");
$donnees = mysql_fetch_array($reponse);
while ($donnees = mysql_fetch_array($reponse) )
{
$valeur1 = $donnees['valeur1'];
$valeur2 = $donnees['valeur2'];
$id=$donnees['id'];
$valeur1 = $valeur1 + $plus1;
$valeur2 = $valeur2 + $plus2;
echo $valeur1;
echo $valeur2;
mysql_query("UPDATE Table1 SET valeur1='$valeur1', valeur2='$valeur2' WHERE id=$id");
}
mysql_close();
?>
mon echo fait apparaitre que les valeur renvoyé sont identique pour chaque enregistrement alors que ca ne devrai pas etre le cas ... la valeur1 du 1er enregistrement est différente de celle du 2eme idem pour valeur2 ...
merci pour votre aide
j'ai une table de ce style
enregistrement 1 , valeur1 , valeur2 , id
enregistrement 2 , valeur1 , valeur2 , id
enregistrement 3 , valeur1 , valeur2 , id
enregistrement 4 , valeur1 , valeur2 , id
...
donc je voudrais que toutes les valeurs 1 et 2 de chaque id soit mis a jour par une augmentation commune ... mon soucis c'est que les valeur de chaque id sont modifié et prennent toutes les données de la première valeur alors qu'a la base elles sont ou peuvent être différente
Voici mon code
<?php
mysql_connect("...","...","...") or die ("Erreur lors de connexion a la bdd 1");
mysql_select_db("...") or die ("Erreur lors de connexion a la bdd 2");
$plus1=50000;
$plus2=1;
$reponse = mysql_query("SELECT * FROM Table1 ");
$donnees = mysql_fetch_array($reponse);
while ($donnees = mysql_fetch_array($reponse) )
{
$valeur1 = $donnees['valeur1'];
$valeur2 = $donnees['valeur2'];
$id=$donnees['id'];
$valeur1 = $valeur1 + $plus1;
$valeur2 = $valeur2 + $plus2;
echo $valeur1;
echo $valeur2;
mysql_query("UPDATE Table1 SET valeur1='$valeur1', valeur2='$valeur2' WHERE id=$id");
}
mysql_close();
?>
mon echo fait apparaitre que les valeur renvoyé sont identique pour chaque enregistrement alors que ca ne devrai pas etre le cas ... la valeur1 du 1er enregistrement est différente de celle du 2eme idem pour valeur2 ...
merci pour votre aide
A voir également:
- Mise a jour de données
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
- Mise à jour libre office - Accueil - Bureautique
8 réponses
C'est moi qui ai fait une erreur ; le where id=$id , tu l'oublie ( c'etait au cas ou tu voulait juste modifier certains id )
Bonjour
Une petite question , pourquoi te complique tu la tache avec un traitement php ? mysql peut fait le boulot que tu veux en une seule commande :)
<?php
mysql_connect("...","...","...") or die ("Erreur lors de connexion a la bdd 1");
mysql_select_db("...") or die ("Erreur lors de connexion a la bdd 2");
mysql_query("UPDATE Table1 SET valeur1=valeur1 + $plus1 , valeur2=valeur2 + $plus2 WHERE id=$id");
?>
théoriquement çà marche ( bon apres j'ai ptet fait des erreur de syntaxe :D )
Une petite question , pourquoi te complique tu la tache avec un traitement php ? mysql peut fait le boulot que tu veux en une seule commande :)
<?php
mysql_connect("...","...","...") or die ("Erreur lors de connexion a la bdd 1");
mysql_select_db("...") or die ("Erreur lors de connexion a la bdd 2");
mysql_query("UPDATE Table1 SET valeur1=valeur1 + $plus1 , valeur2=valeur2 + $plus2 WHERE id=$id");
?>
théoriquement çà marche ( bon apres j'ai ptet fait des erreur de syntaxe :D )
ici, pas besoin de clause WHERE.
Et ça n'explique pas le problème d'origine.
Au fond... N'aurais-tu pas le même id pour tout le monde ?
Et ça n'explique pas le problème d'origine.
Au fond... N'aurais-tu pas le même id pour tout le monde ?
non le id est en incrémentation c'est donc pas le meme ... je viens de me dire que je pourrais peut etre passer pas un for avec i basé sur les id mais bon je pensais qu'il y aurais une methode plus simpliste quand meme
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La méthode de RCtll est sûrement la plus efficace, un seul appel à mysql. Mais la tienne aurait dû marcher. J'aurais bien aimé comprendre.
je vais tester celle de Rctll encore que je me demande comment msql va définir chaque id sans que je lui envoi une boucle pour qu'il le fasse a chaque id ... surtout si je dois définir le where par id ... je test ca avec les reponse mais a mon avis faudra quand meme le while non ????
Désolé je suis encore dans la classe débutant :(
Désolé je suis encore dans la classe débutant :(