Jump to content

Requete a la table product facon prestashop


Recommended Posts

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

Bonjour,
si j ai bien compris votre demnde, je pense vous avez besoin d'une fonction de ce type dans le classe product.php

static 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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...