fred-vinapresta Posted June 4, 2010 Share Posted June 4, 2010 Bonjour a tous,J'ai une question concernant les requetes a la bdd de prestashop. En fait, dans mon site j'ai des produits ayant la meme reference places dans des categories differentes. J'aimerai faire une requete a la table product de la base de donnees pour que celle-ci me sorte tous les produits de la product ayant la meme reference et ainsi de pouvoir les afficher sur la fiche d'un produit...donc il faudrait que la requete soit placee dans le fichier product.php pour pouvoir afficher les resultats dans product.tpl...j'imagine que cette requete est de la sorte SELECT $product->id FROM ps_product WHERE reference = $product->reference...Mais j'aimerai faire cette requete en suivant le modele de prestashop (poo, assignement du tableau de resultats a une variable smarty...) mais la je suis un peu perdue a cause de mon manque d'experience. Si une bonne ame passe par la et qu'elle se sente d'aider une jeune developpeuse en herbe, du moins me donner de quoi m'aiguiller ca me rendrait bien service Bonne journee Link to comment Share on other sites More sharing options...
bechir Posted June 4, 2010 Share Posted June 4, 2010 Bonjour,si j ai bien compris votre demnde, je pense vous avez besoin d'une fonction de ce type dans le classe product.phpstatic public function getProductsbyRef($votreref) { return Db::getInstance()->ExecuteS(' SELECT p.*, pl.* FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product`) WHERE p.`reference` = "'.$votreref.'" ORDER BY pl.`name`'); } Link to comment Share on other sites More sharing options...
fred-vinapresta Posted June 5, 2010 Author Share Posted June 5, 2010 merci beaucoup Bechir! je vais essayer avec cela. Link to comment Share on other sites More sharing options...
fred-vinapresta Posted June 6, 2010 Author Share Posted June 6, 2010 hello a tous,Suite aux conseils de Bachir, j'ai donc bien ajoute cette fonction dans la classe Product; public static function getProductsbyRef($la_reference_du_produit) { $results = Db::getInstance()->ExecuteS(' SELECT p.`id_product` FROM `'._DB_PREFIX_.'product` p WHERE p.`reference` = "$la_reference_du_produit"'); return ($results); } Ensuite dans le fichier product.php, je l'execute: $availablecolors = array(); $availablecolors = $product->getProductsbyRef($product->reference); $smarty->assign('availablecolors', $availablecolors); et ensuite j'ajoute ca pour l'afficher dans product.tpl: > </pre> <ul> {foreach from=$availablecolors item=ref} {$ref} {/foreach} </ul> Au moment de d'afficher les resultats, il sort bien le nombre de resultats souhaite mais par contre entre les balises il me met Array a la place de l'id du produit... $results est bien un tableau qui contient les resultats de la requete? comment faire pour afficher ces resultats et comment dois-je proceder si je veux afficher, l'id et l'image par defaut pour chaque produit de meme reference?Merci par avance et bonne soiree a tous Link to comment Share on other sites More sharing options...
bechir Posted June 7, 2010 Share Posted June 7, 2010 Bonjour,Pour afficher la référence on fait pas $ref, parceque dans votre foreach $ref est la ligne courante c-à-dire un vecteur, donc pour récupérer la reference on fait $ref.reference. 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