Ich habe in einer Kategorie x-Artikel.
In dieser Kategorie gibt es weitere Unterkategorien, die aber, zur zus?tzlichen Klassifizierung der x Artikel, nur Kopien der Artikel in der Hauptkatagorie haben.
In der Kategoriendarstellung wird nun aber die Summe der Artikel in der Hauptkategorie + der kopierten Artikel in den Unterkategorien angezeigt.
Das Problem ist, dass in der Routine
xtc_count_products_in_category gnadenlos auch alle Unterkategorien aufsummiert werden, ohne zu
pr?fen, ob die Artikel der Unterkategorie nicht schon (durch Kopieren) in der Hauptkategorie enthalten sind.
Code:
function xtc_count_products_in_category($category_id, $include_inactive = false) {
$products_count = 0;
$sql_command="select count(distinct p.products_id) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES .
" p2c where p.products_id = p2c.products_id and p2c.categories_id = '" . $category_id . "'";
if (!$include_inactive)
{
$sql_command .= " and p.products_status = '1'";
}
$products_query = xtc_db_query($sql_command);
$products = xtc_db_fetch_array($products_query);
$products_count += $products['total'];
$child_categories_query = xtc_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" .
$category_id . "'");
if (xtc_db_num_rows($child_categories_query)) {
while ($child_categories = xtc_db_fetch_array($child_categories_query)) {
$products_count += xtc_count_products_in_category($child_categories['categories_id'], $include_inactive);
}
}
return $products_count;
}
Hat jemand das Problem schon mal gel?st??