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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Дублирование результата выборки в зависимости от количества указанного в столбце

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Ismail
Отправлено: 11 Октября, 2015 - 18:12:12
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Подскажите как вытащить данные из таблицы по условиям, который описал ниже? Есть запрос который вытаскивает 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 товара. Что нужно дописать чтобы получилось то что мне нужно?

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

(Отредактировано автором: 11 Октября, 2015 - 18:13:36)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB