2011-05-11 60 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