Я получаю следующую ошибку на этой странице при попытке получить информацию из моей базы данных;
У вас есть ошибка в синтаксисе 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.
У вас просто есть болтающаяся запятая в конце выбранных полей, перед предложением FROM
:
cpev.value title,
должен быть:
cpev.value title
Другим подходом было бы использование классов 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, что может сделать вашу страницу немного медленнее.