1

これを達成する方法:

カテゴリー1 (899)

-- カテゴリ 1.1 (189)

-- カテゴリ 1.2 (700)

----- カテゴリ 1.2.1 (300)

----- カテゴリ 1.2.2 (400)

私はいくつかの進歩を遂げました。ただし、「サブカテゴリ」の製品数のみをカウントします

これはコードです:

$ProductsCount = 0;
    $ProductsCount = (int)Db::getInstance()->getValue('SELECT COUNT(cp.`id_product`) AS total
    FROM `'._DB_PREFIX_.'product` p
    '.Shop::addSqlAssociation('product', 'p').'
    LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON p.`id_product` = cp.`id_product`
    WHERE cp.`id_category` = '.$id_category.
    ' AND product_shop.`visibility` IN ("both", "catalog")
    AND product_shop.`active` = 1;' );

しかし、私はそのような結果を得ます:

カテゴリー1 (0)

-- カテゴリー 1.1 (0)

-- カテゴリー 1.2 (0)

----- カテゴリ 1.2.1 (300)

----- カテゴリ 1.2.2 (400)

このコードは修正が必要だと思います。または私は間違っていますか?私はもっ​​と複雑なので、ここに投稿して申し訳ありません!

4

3 に答える 3

0

あなたは前にソースを読むべきでした:)

このCategory::getProducts()メソッドを使用すると、カテゴリ内の製品の総数を取得できます。独自の SQL クエリを記述する必要はありません。

あなたのコードに適応したこのようなものはうまくいくはずです:

$category = new Category($id_category, $id_lang);
$productCount = $category->getProducts($id_lang, 1, 10000, null, null, true); // the last parameter is $get_total

メソッドがサブカテゴリを含む製品の合計を返すかどうかは思い出せませんが、メソッドを見ると、適合する独自のメソッドを作成できるはずです。

于 2013-08-02T09:08:56.070 に答える
0

theme_dir/category.tpl で{$nb_products}試してみてください<h1 class="page-heading">

結果は次のとおりです。 結果は次のとおりです。

于 2017-11-20T15:57:21.407 に答える