Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Дублирование результата выборки в зависимости от количества указанного в столбце
Форумы портала PHP.SU » » Работа с СУБД » Дублирование результата выборки в зависимости от количества указанного в столбце

Страниц (1): [1]
 

1. Ismail - 11 Октября, 2015 - 18:12:12 - перейти к сообщению
Подскажите как вытащить данные из таблицы по условиям, который описал ниже? Есть запрос который вытаскивает id товаров:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT cp.`id_cart`, cp.`id_product`, cp.`id_product_attribute`, c.`id_guest`, c.`id_cart`, cp.`quantity`
  2. FROM `ps_cart_product` cp
  3. LEFT JOIN `ps_cart` c
  4. ON cp.`id_cart` = c.`id_cart`
  5. WHERE c.`id_guest` = $id


$id - id клиента чью корзину получаем. (не суть)

На выходе имеем два нужных параметра - id товаров и его количество.
Выглядеть будет так:

id_product, quantity
13, 1
22, 2

Далее в следующем запросе я вытаскиваю всю информацию о товарах, id которых получил ранее:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT p.`id_product`, p.`price` , l.`name` , l.`link_rewrite` , i.`id_image`, sp.`reduction_type`, sp.`reduction`, f.`value`, fp.`id_feature_value`
  2. FROM `ps_product` p
  3.  
  4. LEFT JOIN `ps_product_lang` l
  5. ON l.`id_product` = p.`id_product`
  6.  
  7. LEFT JOIN `ps_image` i
  8. ON i.`id_product` = p.`id_product` AND i.`cover` = '1'
  9.  
  10. LEFT JOIN `ps_specific_price` sp
  11. ON sp.`id_product` = p.`id_product`
  12.  
  13. LEFT JOIN `ps_feature_product` fp
  14. ON fp.`id_product` = p.`id_product` AND fp.`id_feature` = '13'
  15.  
  16. LEFT JOIN `ps_feature_value_lang` f
  17. ON f.`id_feature_value` = fp.`id_feature_value`
  18.  
  19. WHERE p.`id_product` IN ($product_ids_str)


Цифры - константы.(не суть)

$product_ids_str - это те самые id которые были вытащены ранее, просто я подготовил их для запроса. На выходе получим данные. Но не учитывается кол-во товаров. То есть я получу 2 строки, по одной для каждого id товара. Но нужно получить исходя из этой задачи 3 строки, так как всего 3 товара. Что нужно дописать чтобы получилось то что мне нужно?

Рассматривал вариант перебора в цикле и дублирования инфы, в зависимости от кол-ва товара.. но как-то некрасиво чтоли.

 

Powered by ExBB FM 1.0 RC1