2010-10-08 117 views
0

我在嘗試從我的數據庫中檢索信息時收到以下錯誤:SQL錯誤AS AS

您的SQL語法錯誤; 檢查對應 你的MySQL服務器版本的 正確的語法使用附近的手冊「FROM catalog_product_entity CPE內加入 catalog_product_entity_varchar CPEV O」 第5行

我使用的代碼如下;

include("conn.php"); 

//Get all products that are configurable 
$query = "SELECT cpe.entity_id entity, 
cpe.sku sku, 
cpe.category_ids categories, 
cpev.value title, 
FROM catalog_product_entity cpe inner join catalog_product_entity_varchar cpev on cpe.entity_id = cpev.entity_id 
WHERE cpe.type_id = 'configurable' LIMIT 0,30"; 
$result = mysql_query($query) or die(mysql_error()); 

while($row = mysql_fetch_assoc($result)) 
{ 
    echo "id :{$row['entity']} <br>" . 
     "sku :{$row['sku']} <br>" . 
     "value :{$row['title']} <br>" . 
     "Categories : {$row['categories']} <br>"; 
} 

我想要做的是從magento數據庫檢索產品以顯示在非magento網站上。

回答

2

您只需在選定字段的末尾懸空逗號,在FROM句之前:

cpev.value title, 

應該是:

cpev.value title 
+1

哦,夥計。我準備回家了!哈。謝謝。 :d – doubleplusgood 2010-10-08 15:51:10

0

另一種方法是使用Magento的類爲你形成查詢。

require 'app/Mage.php'; 
Mage::app(); 

$products = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->addAttributeToFilter('type_id', 'configurable') 
    ->setPage(30, 0); 

foreach ($products as $product) { 
    echo nl2br("id: {$product->getId()} 
     sku: {$product->getSku()} 
     value: {$product->getTitle()} 
     Categories: {$product->getCategoryIds()}"); 
} 

好處是它會自動使用正確的數據庫憑證,即使它們已更改。如果您想要檢索類別名稱或其他任何細節,您還可以從$product->getCategoryCollection()等方法中受益。

這種方式的確有加載Magento的開銷,這可能會讓你的頁面變慢一點。