Magento类别树不在类别编辑和产品编辑中

Magento类别树不在类别编辑和产品编辑中,magento,Magento,我使用的是magento 1.5,在中的类别编辑和产品编辑页面中出现奇怪的问题 管理员,一个类别的子类别树没有显示我已经编写了自定义代码来查找该特定类别的子类别,并且它没有显示使用该代码的任何子类别,但是当我在数据库中进行检查时,该特定类别的所有子类别都可用 简单地说,一个类别的子类别树不会显示在管理员的类别编辑和产品编辑页面中 谢谢, 吉特检查目录类别实体中的儿童计数列。如果你有我在1.6上做的问题,你可能会有负值 如果是这种情况,请尝试以下方法: UPDATE catalog_categor

我使用的是magento 1.5,在中的类别编辑和产品编辑页面中出现奇怪的问题 管理员,一个类别的子类别树没有显示我已经编写了自定义代码来查找该特定类别的子类别,并且它没有显示使用该代码的任何子类别,但是当我在数据库中进行检查时,该特定类别的所有子类别都可用

简单地说,一个类别的子类别树不会显示在管理员的类别编辑和产品编辑页面中

谢谢,
吉特

检查
目录类别实体
中的
儿童计数
列。如果你有我在1.6上做的问题,你可能会有负值

如果是这种情况,请尝试以下方法:

UPDATE catalog_category_entity SET children_count = "1" WHERE children_count < 0;
    $categories = Mage::getModel('catalog/category')->getCollection();

    foreach ($categories as $category) {
        $category = $category->load($category->getId());

        $path = $category->getPath();

        $levels = explode('/', $path);

        if (is_array($levels) && count($levels)) {
            $category->setLevel(count($levels));
        }

        $resource = Mage::getSingleton('core/resource');

        /**
         * Category save handler doesn't save level when using
         * the API. Use hard query instead.
         */
        $writeConnection = $resource->getConnection('core_write');
        $writeConnection->query('UPDATE catalog_category_entity SET level = ' . $category->getLevel() . ' WHERE entity_id = ' . $category->getId());
    }

我可以向您保证,Zachary Schuessler解决方案在1.7.0.2中运行良好。 我只是张贴,以便它可以帮助未来的问题

1-我在使用“目录/管理类别”从根类别下删除了很多产品,并在“类别产品”选项卡中取消选择产品后,遇到了这个问题

2-模式类别是硬件,我有几个子类别,扩展“+”符号消失了,因此后端的所有子类别,前端的所有子类别都很好

3-正如Zachary Schuessler所说,并查看硬件类别ID中的数据库,“目录类别实体”中的“儿童计数”列,我的值为“-20”

4-将值编辑为“20”,并且在后端再次恢复正常

注意:有一次,当我从一个类别中移动一个子类别并将其移动到另一个不同类别中时,这种情况也会发生


干杯

下面是一条SQL语句,用于更新由于移动类别而失去同步的所有子项计数。当服务器在将一个类别移动到另一个类别的过程中崩溃时,我们就遇到了这个问题

UPDATE catalog_category_entity a
    INNER JOIN
    (SELECT  parent_id, count(entity_id) totalChildren
       FROM    catalog_category_entity
      GROUP   BY parent_id) b ON a.entity_id=b.parent_id
SET a.children_count = b.totalChildren;

更新这两个查询

UPDATE catalog_category_entity SET level =
(SELECT LENGTH(path)-LENGTH(REPLACE(path,'/','')) AS tmpl
FROM (SELECT * FROM catalog_category_entity) AS table1
WHERE catalog_category_entity.entity_id = table1.entity_id);


@你找到解决办法了吗?即使它是其他东西,您也可以添加它作为答案并接受它。它可以帮助其他访问此页面的人获得解决方案。刚刚使用CE 1.9.4.3遇到此问题,并且能够像这样解决它。谢谢。查看此网站:-儿童计数查询是我所需要的谢谢!你救了我。在我的例子中,儿童计数也是阴性的。刚刚使用CE1.9.4.3遇到了这个问题,并且能够像这样解决它。谢谢
UPDATE catalog_category_entity SET children_count =
(SELECT COUNT(*) FROM
(SELECT * FROM catalog_category_entity) AS table2
WHERE path LIKE
CONCAT(catalog_category_entity.path,"/%"));