2011-05-11 25 views
1

所以,基本上我正在寻找与Magento以外的数据库交互。在检查数据库中的表格后,catalog_product_flat_1似乎存储了我期望检索的大部分信息,因此这只能让我了解除了最后一步以外的所有信息。Magento,SQL查询帮助获得完整的产品URL

我想了解Magento数据库内的关系,并获取所有完整的产品URL到我新创建的表中。

这样做的目的是为了SEO/PPC计划,其中每个产品sku,名称,品牌,描述和网址都有一个不错的列表,可以让产品变得轻而易举。

除了完整的产品网址,我已经可以正常工作了。

我一直在做大量的阅读,似乎更多的人在正常的Magento方法中使用SQL注入,但我期待着使用网站外的数据库来做到这一点。

任何帮助将不胜感激。

+0

我想你可以通过不直接查询数据库并使用API​​来节省自己很多头痛的问题 - 获取您要查找的信息的类和方法是为您构建的。只是需要考虑。 – Nic

回答

2

针对Magento数据库运行原始SQL命令非常耗时,而不是升级证明,并且在某些情况下是危险的。使用Magento代码库中提供给您的模型来执行您的查询。

你可以实现你的SKU,名称,品牌,描述和URL将用做:

<?php 
require_once 'app/Mage.php'; 

Varien_Profiler::enable(); 
Mage::setIsDeveloperMode(true); 
ini_set('display_errors', 1); 

umask(0); 
Mage::app(); 

$fhandle = fopen("dump.csv", "w"); 
$products = Mage::getModel('catalog/product')->getCollection() 
              ->addAttributeToSelect('*'); 

foreach ($products as $product) { 
    $data = array(
     $product->getSku(), 
     $product->getName(), 
     $product->getBrand(), // Or whatever your attribute name is.. 
     $product->getDescription(), 
     $product->getUrlPath() 
    ); 

    fputcsv($fhandle, $data); 
} 

fclose($fhandle); 

我不明白你的“SQL注入”的使用。他们是attacks,而不是编程方式。

+0

嗨,尼克,我不应该使用注入这个词,我的意思是使用Magentos代码中的直接查询或“Magento”方式。感谢您的帮助,现在就进行测试;) – sfla99

+0

@ sfla99是否有运气? – Nick

+0

@Nick,我在哪里可以找到一些'addAttributeToSelect()'方法的文档?我很想知道如何使用这种方法选择产品的特定属性/列。 – musicliftsme