如何从order_id获取选项图像

时间:2013-05-16 18:23:50

标签: mysql opencart

如果您知道order_id并且我想为每个产品显示图像,那么Opencart如何获得产品+选项?

主要原因是我想显示已订购产品的列表,每个产品都会有一个图像:

  1. option_value.image
  2. 或默认product.image
  3. 目前我们通过以下方式获得产品:

    SELECT *
    FROM " . DB_PREFIX . "order_product op
    LEFT JOIN " . DB_PREFIX . "product p ON (p.product_id = op.product_id)
    WHERE order_id = '" . (int)$order_id . "'
    

1 个答案:

答案 0 :(得分:1)

如果是这样的话:

  • 订购产品没有任何选项,让我们显示产品图片
  • 或订购产品只有一个选项(并且不能有更多),让我们显示该选项的图像
然后我就这样走了:

  1. 检索订购产品列表时,在每个订购产品的foreach循环中检查是否已设置选项(每个产品一个查询)
  2. 如果设置了该选项,请转到选项的图像(另一个查询)
  3. 如果没有选项,我们将使用产品图片(这应该已经加载到产品中)
  4. 使用已设置的图像处理图像,如果没有
  5. 则设置为false
  6. 如果图像不为假,则在模板中显示图像
  7. 我们可以讨论是否

    1. 加载所有订购的产品并使用选项的图像加入订购的选项
    2. 或只加载产品然后查询有序选项,然后查询选项的图像
    3. 更好。如果我现在看两个,我会说第一个应该更好,因为只执行一个查询但另一方面它会加载更多的数据,其中很多可能只是{{ 1}} s(所有未设置选项的产品)。我想这取决于最终端点和通信速度:如果所有查询都需要一些时间来执行(连接/通信速度很慢),我会坚持使用第一个选项。但如果连接速度在几毫秒内(即0-10),那么我将按照上述5个步骤中的描述使用第二个连接速度。