Bonjour,
Je suis face à un petit problème de syntaxe que je n'arrive pas a resoudre.

Voici ma requete initiale qui fontionne très bien

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
// REQUETE NIVEAU 3
$queryCat3rdLevel = "	SELECT c.id_category, c.level_depth, c.id_parent, c.active, l.id_category, l.name, l.id_lang FROM "._DB_PREFIX_."category c 
INNER JOIN "._DB_PREFIX_."category_lang l ON c.id_category = l.id_category 
WHERE c.active = 1 AND c.level_depth = 3 AND c.id_parent = ".$poolCategories[$key1]['child'][$key2]['id_category']." AND l.id_lang = ".$language." 
ORDER BY l.name ASC";
$resultCat3rdLevel= Db::getInstance()->s($queryCat3rdLevel);

J'ai une autre table category_product ou sont stcker l'id des produit lié à une categorie

J'ai juste besoin de savoir s'il y a au moins un produit. Le nombre m'est egal

Donc pour cela je doins joindre ma table category_product et je l'ai fait ainsi
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
$queryCat3rdLevel= "	SELECT c.id_category, c.level_depth, c.id_parent, c.active, l.id_category, l.name, l.id_lang , pc.id_category, pc.id_product
FROM "._DB_PREFIX_."category c 
INNER JOIN "._DB_PREFIX_."category_lang l ON c.id_category = l.id_category 
LEFT JOIN "._DB_PREFIX_."category_product pc ON c.id_category = pc.id_category
WHERE c.active = 1 AND c.level_depth = 3 AND c.id_parent = ".$poolCategories[$key1]['child'][$key2]['id_category']." AND l.id_lang = ".$language." 
ORDER BY l.name ASC";
$resultCat3rdLevel= Db::getInstance()->s($queryCat3rdLevel);

Le problème c'est que me crère un doublon. C'est dure d'explique comme cela, mais deux mots, le l.name est afficher deux fois, alors qu'il ne l'était qu'une fois.

Je sais pas si je fourni aussez d'information, mais le but initial est de questionner la table category_product pour savoir s'il y a au moins un produit associé à cette categorie, si oui je peux avoir un true ou false, dans l'array $resultCat3rdLevel.


Es-ce que je vous ai founri assez d'info?

Milles mercis