2011-05-11 18 views
1

したがって、基本的にMagento以外のデータベースとやりとりすることを検討しています。データベースのテーブルを見直すと、catalog_product_flat_1には検索する情報の大半が格納されているように見えるので、最終ステップ以外のすべてについて私には分かります。Magento、SQLクエリを使用して完全な製品URLを取得する

私はMagento DB内の関係を理解し​​、すべての完全な製品URLを新しく作成したテーブルに入れようとしています。

これは、すべての製品SKU、名前、ブランド、説明、URLの素敵なリストを製品に直接付けることで、作業を楽にするSEO/PPCイニシアチブの目的です。

私はすべての製品のURLを除いて正常に動作しています。

私はかなりの量の読書をしていますが、通常の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

関連する問題