У вас есть две таблицы в вопросе, с разными деталями для одних и тех же продуктов.Одна вещь, которую вы никогда не хотите делать, это дублировать данные в разных таблицах.Это растрачивает ресурсы и рискует целостностью данных.Ex.если название продукта изменится, вам придется изменить его во многих таблицах.Если вы пропустите один из них, у приложения возникнут проблемы, поскольку оно не всегда получит одно и то же имя.Вы можете прочитать о нормализации данных.
Чтобы выполнить запросы к двум таблицам, вы используете операцию JOIN.Одно значение, уникальное для каждого продукта и отображаемое в обеих таблицах, это product_id.
Ex, получить имя продукта из lcqu_products_info
SELECT name
FROM lcqu_products_info
Ex, получить цену из lcqu_orders_items
SELECT price
FROM lcqu_orders_items
Теперь, если вам нужно имя И цена в одном запросе, объедините таблицы с идентификатором продукта:
SELECT pi.name, oi.price
FROM lcqu_products_info AS pi
LEFT JOIN lcqu_orders_items AS oi ON pi.product_id = oi.product_id
Исходя из этого, вы должны удалить столбец "имя" изlcqu_orders_items.Имя должно быть извлечено из lcqu_products_info, используя те же методы, как показано выше.
Теперь о вашем PHP-коде:
<?php
foreach ($order['items'] as $item)
{
?>
<tr>
<td>
<?php echo (float)$item['quantity']; ?>
</td>
<td>
<?php echo $item['sku']; ?>
</td>
<td style="white-space: normal;">
<?php echo $item['name']; ?>
<?php
if (!empty($item['options']))
{
foreach ($item['options'] as $key => $value)
{
echo '<br />- '.$key .': '. $value;
}
}
?>
В этом коде вам нужны эти значения из lcqu_orders_items
- количество: в таблице
- sku: в таблице
- имя: в таблице.Не должно быть.Он должен быть взят из lcqu_products_info
- options: в таблице.
Поэтому запрос должен быть:
SELECT oi.quantity, oi.sku, pi.name, oi.options
FORM lcqu_orders_items AS oi
LEFT JOIN lcqu_products_info AS pi ON oi.product_id = pi.product_id
результаты этого запроса будут заканчиватьсяв массив $ orders, в котором вы можете зациклить и распечатать данные.
Я понимаю, что это не прямой ответ на ваш вопрос, но такой ответ отправит вас по пути, который не являетсяЛучшая практика, и вы будете испытывать проблемы позже.