Объедините строки sql с тем же идентификатором, суммой и обновите итог - PullRequest
0 голосов
/ 28 октября 2009

Я пытаюсь написать php-скрипт для сравнения строк из базы данных, а затем добавляю количество, соответствующее идентификатору продукта Основано на cusotmer_id

Пример:

mydb.cart

id, customer_id, cart_id, product_id, qty, price

1, 0001000, 4545453, 20, 10, 12.99
2, 0001000, 7473432, 20, 2, 12.99

Result
3, 0001000, 7473432, 20, 12, 25.98

пытается объединить информацию корзины из предыдущего сеанса.

Любые предложения приветствуются,

Спасибо

Ответы [ 2 ]

1 голос
/ 29 октября 2009

Вы, вероятно, можете просто сделать это в SQL, а не в PHP. Обновите новую строку корзины и удалите старую. Не уверен, что это правильный синтаксис MySQL, но он должен выглядеть примерно так:

UPDATE cart SET qty = (
    SELECT SUM(qty) FROM cart c WHERE c.id = id 
    GROUP BY c.customer_id, c.product_id)
  WHERE EXISTS (
    SELECT 'x' FROM cart c2 
    WHERE c1.customer_id = c2.customer_id
    AND c1.product_id = c2.product_id
    AND c1.id < id);

DELETE FROM cart c1 WHERE EXISTS (
    SELECT 'x' FROM cart c2 
    WHERE c1.customer_id = c2.customer_id
    AND c1.product_id = c2.product_id
    AND c1.id < id);
0 голосов
/ 28 октября 2009
select sum(id)
     , customer_id
     , cart_id
     , product_id
     , sum(qty)
     , sum(price)
  from mydb.cart
group
    by customer_id
     , cart_id
     , product_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...