Probleme requete UPDATE

Fermé
corsichris - 19 avril 2016 à 15:20
 corsichris - 20 avril 2016 à 18:05
Bonjour,

Je voudrais mettre à jour , tous les colonnes d'une table directement sur phpmyadmin.
cependant il y plus de 5000 articles à mettre à jour.
c'est une table ' pss_product ' , avec son champs 'active' et je voudrais modifier que la valeur du champs 'active' de tous les enregistrements .

j'ai essayé

UPDATE `pss_product` SET `active` VALUES
(1),
(1),
(1),
(1),
(0),
(1),
(1),
(1),
(1),
(1),
(1)
....
(1);


mais cela me renvoi un message d'erreur sur la requete,
merci de votre aide
            
                
A voir également:

10 réponses

Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 15:21
Bonjour,

Tu veux y écrire quoi?
Tu écris en brut dans ta base? Pas de vue/code derrière?
0
bien je voudrais modifier le numero du champs 'active'
par de nouvelles valeurs

UPDATE `pss_product` SET `active` VALUES
(1),
(1),
(1),
(1),
(0),
(1),
(1),
(1),
(1),
(1),
(1)
....
(1);
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 15:26
Combien y a-t-il de 0 et combien de 1?
0
actuellement il n'y a que des 1
et je voudrais modifier avec les nouvelles valeurs que j'ai recuperé de l'ancien base, il y a plus de 5000 produits,
je voulais savoir comment proceder car

UPDATE `pss_product` SET `active` VALUES
(1),
(1),
(1),
(1),
(0),
(1),
(1),
(1),
(1),
(1),
(1)
+ les 5000 autres
(1);

ne fonctionnent pas
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 15:33
Tu n'as pas compris comment te servir de la fonction update.
Il ne faut l'utiliser que quand une valeur du champ est à changer. Si tu avais 1 et que tu écris 1 ça ne sert à rien. Il faut que tu fasse ton update uniquement sur les 0 en fonction de l'id.
0
corsichris > Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020
19 avril 2016 à 15:36
oui je sais que çà ne sert à rien,
mais comme il y a plus de 5000 produits , cela serait trop fastidieux et tres longs de tout mettre à jour,

y a t il pas ce genre de solution de modifier tous l'ensemble d'un coup meme si certaines ne vont pas changer.?
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 15:40
Si les séquences ne se répètent pas non. C'est pour ça qu'on écrit jamais en dur sur une base, on passe toujours par une vue+ code.
0
comment je pourrais proceder alors?
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 15:43
Ba je t'ai posé une question au tout début, j'attends toujours ma réponse.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vider le champs 'active' et faire un insert?
0
pardon laquelle de question?
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 15:50
Tu écris en brut dans ta base? Pas de vue/code derrière?
0
ah oui j'ecrit en brut sur la base, c'est une site de vente prestashop que j'ai migrer de oscommerce, et je voulais modifier les valeurs de ce champs 'active'
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
Modifié par Pierre1310 le 19/04/2016 à 15:55
Donc si tu n'as pas l'intention d'automatiser via un code, tu n'as pas d'autre choix que d'écrire à la main( pas toutes, uniquement celles qui changent d'état), même si je te recommande vivement de passer par du code.
0
comment faire pour automatiser?
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 16:06
"automatiser requete sql" sur google.

Si ton site est important, il te faudra par exemple faire un html/php, renseigne toi sur ce qu'il ta faut.
0
çà m'avance pas plus
je ne saurais tjs pas ecrire ma requete sql
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 16:16
Pourquoi tu as besoin de tout changer d'un coup?
Ne fais pas répondre au sujet, vas dans ajouter un commentaire pour ne pas que ça descende trop.
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
19 avril 2016 à 16:20
Tu peux mettre ta requête dans un fichier PHP et l'exécuter quand tu veux.
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914508-ecrivez-des-donnees
0
parce que j'ai rajouté un module sur prestashop, qui m'a modifié tous les états du champs 'active' qui les a passé à '1'.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 19/04/2016 à 17:25
Bonjour,

Je n'ai pas suivi toutes la discussion ... mais ;..

Si tu veux mettre des "1" PARTOUT ... dans ce cas la requête que tu peux utiliser directement depuis phpmyadmin est :
UPDATE `pss_product` SET `active` = 1


Si tu veux mettre à jour que certains enregistrements... tu peux utiliser la même requête... mais en ajoutant une clause WHERE
par exemple (en partant du principe que tu as un champ de type 'id' te permettant d'identifer les lignes de la table à mettre à jour):
UPDATE `pss_product` SET `active` VALUES 
WHERE id IN (1,5,6,7,8,9,10) 



Cordialement, 
Jordane                                                                 
0
merci de ta reponse,
mais en fait non j'ai que des '1' dans la nouvelle base,
et je voudrais mettre à jour certains produits avec des '0' plus de 5000 produits !!
j'ai pu recuperer de l'ancienne base la liste des 0 et 1 dans l'ordre des id,
mais autre probleme il ne correspondent pas,
c'est à dire l'ancienne base démarrait à id=35, à la nouvelle a id=30
pffff
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > corsichris
19 avril 2016 à 17:33
Ben si l' ID ne correspond pas ... essaye de trouver un autre champ qui pourrait te serveur d'identifiant ... comme .. le nom du produit par exemple.

Quelle est la structure de ta table ?
Peux tu, isoler dans ton ancienne table les enresitrements que tu souhaites mettre à 0 ?
0
oui je peux selectionner les champs égale à 0 dans l'ancienne table,
mais les id correspondent pas et aucun autre champs ne correspond,
puis que c'est une migration d'un oscommerce à prestashop
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > corsichris
19 avril 2016 à 17:54
Si tu n'as aucune correspondance ... (et donc rien pour les identifier....) ... pourquoi cherches tu à mettres les "mêmes" valeurs ??
Je ne comprend pas !

A quoi sert cette table ?
Ne serait-elle pas en relation avec une autre table ?
Et dans ton ancienne BDD ... ne serait-ce pas la même chose ?
Et pour finir..... tu ne nous as toujours pas donné la structure de ta table !*

Par ce que là ... si tu n'as aucune correspondance, ni rien pour faire une correspondance entre cette table et ton ancienne... il te sera IMPOSSIBLE de faire ce que tu souhaites !
A moins que les enresitrements ne soient classés exactement dans le même ordre... et là ... comme le suggère Pierre, en utilisant un langage comme le PHP par exemple, tu pourras toujours faire une boucle pour mettre à jour les données.
0
je recherche à mettre les memes valeurs car j'ai rajouté un module sur prestashop qui m'a tout reiniatialiser à '1' , et donc oui les enregistrements sont classés par ordre , et j'ai la liste des 0 et 1 dans l'ordre,

comment faire cette boucle alors??
0