Probleme requete UPDATE
corsichris -
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
10 réponses
Mise à jour en masse du champ 'active' d'une table via phpMyAdmin, pour environ 5000 enregistrements de pss_product sans toucher aux autres colonnes. Des réponses recommandent d’utiliser UPDATE en ciblant uniquement les enregistrements à modifier, par exemple UPDATE pss_product SET active = 1 WHERE active = 0. Les échanges rappellent qu’il n’existe pas de requête miracle pour modifier des milliers de valeurs sans préciser les enregistrements, et que des migrations OSCommerce vers PrestaShop peuvent influencer la méthode. En cas de difficulté, plusieurs suggèrent d’automatiser via une vue ou un script afin d’éviter les saisies répétitives et d’optimiser l’opération.
-
Bonjour,
Tu veux y écrire quoi?
Tu écris en brut dans ta base? Pas de vue/code derrière?
-
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); -
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 -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
-
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'
-
-
-
-
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 -
-
-
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-
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 -
-
-
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. -
-