overdoze Posted November 24, 2010 Share Posted November 24, 2010 Bonjour a tousj'ai réussi enfin a comprendre comment récupérer les donnés de la base et l'envoyés vers le fichier tpl.j'ai 610 produits avec 3 déclinaisons pour chacun (=1830 déclinaisons) avec un module vente flash dont je veux utiliser les résultats de mes requêtes.Donc pour cela il faut récupérer :-le nom de la déclinaison et id_attribute (de la table attribute_lang) public function GetnameCombinaison() { return Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'attribute_lang` a_l'); } - la quantité,id_product,id_product_attribute et prix (table product_attribute) public function GetquantityAttributes() { return Db::getInstance()->ExecuteS(' SELECT quantity,id_product,price,id_product_attribute FROM `'._DB_PREFIX_.'product_attribute` p_a'); } - l' id_attribute et id_product_attribute (table product_attribute_combination) public function GetattributeCombinaison() { return Db::getInstance()->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'product_attribute_combination` p_ac'); } ==> c fait a l'aide de ces 3 requêtes mais lorsque je l’exécute ça passe le temps maximum d’exécution (30 sec) et le chargement du site devient lourd>>>donc je veux combiner ,si c possible, les 3 requêtes ensemble et prendre juste les détails des produits concernés par mon module Link to comment Share on other sites More sharing options...
overdoze Posted November 24, 2010 Author Share Posted November 24, 2010 je crois que j'ai mal expliqué, alors je récapitule:j'ai un module ventes flash avec lequel je sélectionne quelques produits pour la ventes flash (une quinzaine de produits) .chaque produit a 3 déclinaisons,la 2me est celle par défaut, si cette dernière est a quantité0 le module passe a la 1ère déclinaisons or moi je veux passer a la 3me pas a la 1ère c pour cela que je veux récupérer les quantités et le noms des déclinaisons a l'aide des requêtes mentionnées au dessus mais ces requêtes me retourne toutes les déclinaisons existantes dans la BDD (+ de 1800) or moi j'ai besoin seulement des déclinaisons qui appartiennent aux produits sélectionnés en ventes flash.merci d'avance Link to comment Share on other sites More sharing options...
overdoze Posted November 24, 2010 Author Share Posted November 24, 2010 je me sens seul sur le forum!!! :long: bon j'a réussi a faire une requête qui me retourne les données necessaires public function GetattributeCombinaison() { return Db::getInstance()->ExecuteS(' SELECT pac.*,pa.quantity,pa.id_product,pa.id_product_attribute,pa.price FROM `'._DB_PREFIX_.'product_attribute_combination` pac LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON pa.`id_product_attribute` = pac.`id_product_attribute`'); } mais lors de l’exécution elle me sélectionne toutes les déclinaisons existantes (+de 1830) dans la table en + de l'augmentation du cache ( plus 3M) en chargement de la page.A l'aide quelqu'un peut m'aider a corriger cette requête pour quelle me sélectionne juste les déclinaisons nécessaires pour mes produits sélectionnés pour la vente flash Merci d'avance Link to comment Share on other sites More sharing options...
overdoze Posted November 25, 2010 Author Share Posted November 25, 2010 y'a pas un programmeur passé par là?? :long: Link to comment Share on other sites More sharing options...
BVince Posted November 25, 2010 Share Posted November 25, 2010 Bonjour,pourquoi ne pas passer l'id_product en paramètre de fonction ? public function GetattributeCombinaison($idProduct) { if(!$idProduct) return false; else return Db::getInstance()->ExecuteS(' SELECT pac.*,pa.quantity,pa.id_product,pa.id_product_attribute,pa.price FROM `'._DB_PREFIX_.'product_attribute_combination` pac LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON pa.`id_product_attribute` = pac.`id_product_attribute` WHERE pa.id_product='.$idProduct); } puis on appelle la fonction : $this->GetattributeCombinaison(MonIdProduct); Link to comment Share on other sites More sharing options...
overdoze Posted November 25, 2010 Author Share Posted November 25, 2010 oui j'ai pensé a ça mais ça m'affiche une notice Notice: Undefined variable: idProduct et tableau vide.en tous cas j'ai résolu mon problème avec cette requête SELECT id_produit, product_attribute.id_product, product_attribute.id_product_attribute, product_attribute_combination.id_attribute, product_attribute_combination.id_product_attribute, product_attribute.quantity FROM ventes, product_attribute, product_attribute_combination WHERE id_produit = product_attribute.id_product AND product_attribute.id_product_attribute = product_attribute_combination.id_product_attribute AND product_attribute_combination.id_attribute <>31 LIMIT 0 , 30 Il me retourne juste les produits sélectionnées par le moduleMerci quand même BVince pour le coup de main 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