【问题标题】:How to query magento database tables to show categories and products?如何查询 magento 数据库表以显示类别和产品?
【发布时间】:2011-11-26 07:14:57
【问题描述】:

我有一个 PHP 网站,现在我想将购物车添加到我现有的 php 网站。 所以我为此使用magento。

在我的网站目录中,我创建了一个名为“shop”的新目录,并将magento放入该目录中。

我的网站运行良好。但是在网站的主页上,我想显示来自 magento 网站的类别和产品,因此无法使用 magento 内置功能,因为我的网站主页不在 magento 网站上。

所以我认为我应该为此查询 magento 数据库表,但是 magento 数据库表非常复杂,所以任何人都可以给我一些关于这个问题的想法吗?

有没有其他方法可以解决我的问题,如果唯一的查询是解决方案,那么我将如何查询 magento 数据库表以显示类别和产品。

提前致谢。

【问题讨论】:

  • 不鼓励直接 SQL 访问。如果架构发生更改,对 Magento 的任何升级都可能会破坏您的站点。使用@khoekman 的方法,您应该能够避免升级问题

标签: php magento


【解决方案1】:

我会尝试这样的事情:

require 'shop/app/Mage.php';

/* Run magento app */
Mage::app();

function get_categories(){

    $category = Mage::getModel(’catalog/category’);
    $tree = $category->getTreeModel();
    $tree->load();

    $ids = $tree->getCollection()->getAllIds();
    $arr = array();

    if ($ids){
        foreach ($ids as $id){
            $cat = Mage::getModel(’catalog/category’);
            $cat->load($id);
            array_push($arr, $cat);
        }
    }
    return $arr;
}

$categories = get_categories();

foreach($categories as $cat) {
    echo "<br />Category: " . $cat->getName();
    $collection = $cat->getProductCollection();
    foreach ($collection as $item) {
    $product = Mage::getModel("catalog/product")->load($item->getId());
        echo "<br />Product: " . $product->getName();
    }
}

【讨论】:

  • 如果我想添加 3 个最近添加的产品怎么办?那我应该怎么修改这段代码呢?
【解决方案2】:

您无需编写复杂的查询即可在主页中显示某些类别。但是您可以在主页中添加以下内容(菜单 > CMS > 页面 > 主页)

{{block type="catalog/product_list" category_id="3" template="catalog/product/list.phtml"}}

其中 category_id 是要显示的类别的 ID。见screenshot to get cat id

【讨论】:

  • 但它会在magento主页上显示类别而不是在我的网站主页上?我想在网站主页上显示类别和产品,而不是在 magento 主页上。
  • Op 显然是在尝试访问 Magento 之外的 Magento 数据。您的答案是在 CMS 页面内工作。
  • 是的......这是我的错误......(对于所有这个答案不适合这个问题)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多