mySQL: как я могу получить attribute_id атрибута продукта? - PullRequest
1 голос
/ 23 октября 2011

Я создаю (php + mySQL) приложение, которое использует спецификации продукта для генерации названия продукта за пределами Magento.В настоящее время мой код выглядит следующим образом:

    //select attributes
$sql = "SELECT DISTINCT P.entity_id, P.sku, V.value AS Name, T2.value AS ShortDesc, D.value AS Price
FROM  catalog_product_entity AS P INNER JOIN
catalog_product_entity_varchar AS V  ON P.entity_id = V.entity_id  AND V.attribute_id  = 60  LEFT JOIN
catalog_product_entity_text    AS T2 ON P.entity_id = T2.entity_id AND T2.attribute_id = 62  LEFT JOIN
catalog_product_entity_decimal AS D  ON P.entity_id = D.entity_id  AND D.attribute_id  = 64";

//Run the query
$query = mysql_query($sql);

//Loop through and print each products info
while($row = mysql_fetch_array($query))
{
echo '<p>';
echo $row['entity_id']." - ".$row['sku']." - ".$row['Name']." - ".$row['ShortDesc']." - ".$row['Price'];
echo '</p>';
}

Приведенный выше код не имеет всех необходимых мне атрибутов, поэтому я просмотрел базу данных Magento с помощью phpMyAdmin, но не смог найти соответствующий attribute_idнекоторых атрибутов продукта, которые я вижу в бэкэнде Magento.Есть ли способ просмотреть все атрибуты и их соответствующие атрибуты_идентификатора?

1 Ответ

2 голосов
/ 23 октября 2011

Вы можете найти идентификаторы всех атрибутов eav в таблице eav_attribute.Но я предлагаю вам выбрать данные из таблицы catalog_product_flat_1(2,3,...) в вашем случае.Каждый атрибут продукта добавляется в качестве отдельного столбца индексатором.Вот почему нет необходимости выполнять запрос со многими объединениями.

...