vince0 Posted April 26, 2016 Share Posted April 26, 2016 Bonjour, Suite à un mise à jour de module, je dois créer une caractéristique produit et assigner à cette caractéristique une même valeur pour tous mes produits. Si j'avais que quelques produits, je le ferai directement depuis les fiches produits , le seul soucis c'est que j'en ai un peu moins de 1 000 et que je ne vois pas les faire une par une.... Donc si quelqu'un a une idée pour réaliser cela en masse (requete SQL ?), je suis preneur !!! D'avance, merci Vincent Link to comment Share on other sites More sharing options...
erouvier29 Posted April 27, 2016 Share Posted April 27, 2016 Après avoir créer la caractéristique (id = C) et la valeur (id = V), exécutez la requête: INSERT INTO ps_feature_product (id_product, id_feature, id_feature_value) SELECT id_product, C, V FROM ps_product Link to comment Share on other sites More sharing options...
vince0 Posted April 27, 2016 Author Share Posted April 27, 2016 Merci Erouvier, ça marche nickel ! Si tu me permettais d'abuser de ta gentillesse, tu pourrais aussi résoudre un second pb assez similaire. En fait je cherche à copier les valeurs de la caractéristique produit Editeur (id=4) dans la table fabricant. Du coup, en suivant la même logique que précédemment, je peux exécuter la requête : INSERT INTO ps_manufacturer (id_manufacturer, name) SELECT 4, id_feature_value FROM ps_feature_product Bien entendu je perdrais les liens préexistants entre les produits et les fabricants ... Qu'en penses tu ? Link to comment Share on other sites More sharing options...
erouvier29 Posted April 27, 2016 Share Posted April 27, 2016 Non, c'est un peu plus compliqué que ça. On ne précise pas l'identifiant du fabricant, il est automatiquement déterminé par incrément. Le nom doit être la valeur de la caractéristique (dans une langue déterminée) plutôt que son identifiant. Donc, pour créer un fabricant par valeur (en FR supposé id 1) de la caractéristique "Editeur" (id 4), et les activer (par défaut ils ne le seront pas): INSERT INTO ps_manufacturer (name, active) SELECT fvl.value, 1 FROM ps_feature_value fv JOIN ps_feature_value_lang fvl ON fvl.id_feature_value = fv.id_feature_value AND fvl.id_lang = 1 WHERE fv.id_feature = 4 PS: Proposé de tête, pas de BDD sous la main. Si vous commencez avec une BDD de test, ou par faire une sauvegarde, c'est mieux... Link to comment Share on other sites More sharing options...
vince0 Posted April 27, 2016 Author Share Posted April 27, 2016 Haha !! Je me disais aussi que cela paraissait trop simple !! Je teste dés que j'ai 5 min ... cet après midi ça va être compliqué mais je vous tiens au courant... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now