【问题标题】:Magento Fetch all images from databaseMagento 从数据库中获取所有图像
【发布时间】:2014-12-31 11:48:04
【问题描述】:

我一直在搜索查询以获取产品的图片网址(图片库中的所有网址,而不仅仅是小/缩略图)。我找到了这个查询

select * from catalog_product_entity_media_gallery AS mg, catalog_product_entity_media_gallery_value AS mgv, catalog_product_entity_varchar AS ev WHERE mg.value_id =mgv.value_id AND mg.entity_id = ev.entity_id AND ev.attribute_id IN (85,86,87) AND mgv.position = 1

但这不适用于 magento 1.4。任何帮助表示赞赏。

【问题讨论】:

    标签: magento magento-1.4 entity-attribute-value


    【解决方案1】:

    以下sql指令显示base_image、small_image和缩略图的路径。

    SELECT  `a`.`entity_id`,  `a`.`sku`, `b`.`value` AS `base_image`, `a`.`small_image`,  `a`.`thumbnail` FROM `catalog_product_flat_10` a, 
    `catalog_product_entity_media_gallery` b WHERE a.entity_id = b.entity_id LIMIT 1000;
    

    【讨论】:

      【解决方案2】:

      例如,您可以尝试获取小图像路径

      select * from catalog_product_entity_varchar
      where entity_id = 20 /*Optional your attribute*/
      and attribute_id  = 86 ;/*small image*/
      

      字段值会显示图片的具体路径

      例如 C:\wamp\www\magento\media\catalog\product\ (来自 catalog_product_entity_varchar 的字段)

      如果你想找到其他图像,你应该检查表 eav_attribute

      【讨论】:

      • 嗨,我要求上传到带有产品 skus 的 magento 的所有图像(画廊图像,小/缩略图图像)。如果我们能够获得那些很棒的图片网址,那就太好了
      【解决方案3】:

      这应该对 Magento 2 有用

      SELECT e.entity_id AS 'id',
             e.sku AS 'sku',
             v2.value AS 'image',
             v3.value AS 'thumbnail',
             v4.value AS 'small image',
             mg.value AS 'media_gallery'
      FROM catalog_product_entity e
      LEFT JOIN catalog_product_entity_varchar v2 ON e.entity_id = v2.row_id
      AND v2.store_id = 0
      AND v2.attribute_id =
        (SELECT attribute_id
         FROM eav_attribute
         WHERE attribute_code = 'image'
           AND entity_type_id =
             (SELECT entity_type_id
              FROM eav_entity_type
              WHERE entity_type_code = 'catalog_product'))
      LEFT JOIN catalog_product_entity_varchar v3 ON e.entity_id = v3.row_id
      AND v3.store_id = 0
      AND v3.attribute_id =
        (SELECT attribute_id
         FROM eav_attribute
         WHERE attribute_code = 'thumbnail'
           AND entity_type_id =
             (SELECT entity_type_id
              FROM eav_entity_type
              WHERE entity_type_code = 'catalog_product'))
      LEFT JOIN catalog_product_entity_varchar v4 ON e.entity_id = v4.row_id
      AND v4.store_id = 0
      AND v4.attribute_id =
        (SELECT attribute_id
         FROM eav_attribute
         WHERE attribute_code = 'small_image'
           AND entity_type_id =
             (SELECT entity_type_id
              FROM eav_entity_type
              WHERE entity_type_code = 'catalog_product'))
      LEFT JOIN
        (SELECT m1.value_id AS m1_value_id, GROUP_CONCAT(m2.value) AS VALUE, m2.value_id AS m2_value_id, m1.row_id AS m1_row_id
         FROM catalog_product_entity_media_gallery_value m1
         INNER JOIN catalog_product_entity_media_gallery m2 ON m2.value_id = m1.value_id
         AND m2.attribute_id =
           (SELECT attribute_id
            FROM eav_attribute
            WHERE attribute_code = 'media_gallery'
              AND entity_type_id =
                (SELECT entity_type_id
                 FROM eav_entity_type
                 WHERE entity_type_code = 'catalog_product'))
         GROUP BY m1.row_id) mg ON e.entity_id = m1_row_id
      WHERE e.sku IN
      (
      "sku1",
      "sku2",
      "sku3"
      );
      

      【讨论】:

        【解决方案4】:

        只是捎带陈的真棒答案(这帮助我到达了我需要到达的地方,谢谢老兄!)

        SELECT  `a`.`entity_id`,  `a`.`sku`, 
        concat('https://yoururl/media/catalog/product',`b`.`value`) AS `base_image`, 
        concat('https://yoururl/media/catalog/product',`a`.`small_image`) AS `small_image`,  
        concat('https://yoururl/media/catalog/product',`a`.`thumbnail`) AS `thumbnail`, 
        group_concat(concat('https://yoururl/media/catalog/product', `b`.`value`)) AS `additional_images` FROM `catalog_product_flat_1` a, 
        `catalog_product_entity_media_gallery` b WHERE a.entity_id = b.entity_id
        GROUP BY `a`.`sku`;
        

        您可以按 value 和 SKU group_concat 来获得一个多汁的附加图像列。

        我知道我们已经过了 M1 支持,但希望这可以帮助某人。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-06-08
          • 1970-01-01
          • 2014-05-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多