Jump to content

interrogation bdd et inner join pour recherche de souscatégorie d'une catégorie pour chaque produit


Recommended Posts

Bonjour à toutes et à tous,

 

je suis débutante sous prestashop, c'est ma première boutique !

Jusqu'à maintenant j'ai pu creer sans problème mon thème comme je le voulais, mais la je bloque:

 

En gros, j'ai des produits qui appartiennent à plusieurs catégories. C'est ma méthode pour faire des classements avec fourchettes (fourchettes de taille, fourchette de prix, etc...)

 

toutes mes produits appartiennent à une sous-catégorie de la catégorie ayant l'id 3 (catégorie par taille)... Ces sous-catégories sont donc du type (20 a 50cm, 50cm a 100, etc...)

C'est l'un de mes classements.

J'ai mis pour chacune de ces sous-catégories, une image qui la représente.

 

Je voudrais que lorsque l'on arrive sur un produit, cette image s'affiche.

 

En utilisant la méthode normale, il n'y a pas de pb lorsque l'on arrive sur ce produit via une des sous-catégorie de la catégorie par taille.

 

Mais lorsqu'on arrive par une autre catégorie que le classement par taille, cette image ne s'affiche plus.

 

 

J'ai essayé pas mal de méthodes, la dernière étant je pense la plus aboutie, mais sans succès...

 

 

je me suis dis qu'il fallait déja récupérer toutes les catégories auquel appartient le produit, trouver laquelle a pour parent l'ID 3 (nommaons la X) et ensuite faire s'afficher l'image qui lui correspond..

 

 

Je me suis donc créé une fonction adaptée d'une fonction existante pour déja récupérer voir si je retrouvais l'ID de la catégorie X mais cela ne marche pas je ne comprends pas pourquoi...

 

 

ma fonction dans mon override\classes\Product.php :

 

 

public static function getCategorieEnfant($id_product = '')
{
 $ret = array();
 $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
 SELECT  cp.`id_category` FROM `'._DB_PREFIX_.'category_product` cp
 INNER JOIN `'._DB_PREFIX_.'category` cl ON (cp.`id_category` = cl.`id_category`)
 WHERE cp.`id_product` = '.(int)$id_product.'
 AND cl.`id_parent` = 3'

 );
 foreach ($row as $val)
  $ret[$val['id_category']] = $val;
 return $ret|print_r;
}

}

 

et l'appel dans le fichier product.tpl

 

{Product::getCategorieEnfant($id_product)}

 

 

Cela ne m'affiche aucunement le bon id en commun.

 

Si quelqu'un à une idée pour m'aider, ou même carrément une méthode plus simple pour arriver à ce que je veux, je lui serais extrêmement reconnaissante.... parce que la j'ai passer une journée et demie à essayer tout plein de méthodes et je deviens folle !!!!

 

Merci d'avance

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More