Summe berechnen

Summe berechnen

am 28.03.2006 15:34:39 von Johannes Theile

Hallo,
für einen kleinen Shop verwende ich zwei Tabellen.

Tabelle shop_articles:
id, article_number, article_price

Tabelle shop_cart:
id, article_number, article_quantity, session_id

Nun möchte ich begrenzt auf einer bestimmte Session-ID die Summe des
Warenkorbes ermitteln. Zu beachten sei noch, dass ein Produkt mehrmals im
Warenkorb mit der gleichen Session-ID erscheinen kann und dann evtl. die
Anzahl unterschiedlich ist. Die Anzahl jedes "Postens" muss dann aber
addiert werden.

Ist es möglich, eine Abfrage in MySQL durchzuführen, dass ich am Ende nur
die Gesamtsumme des Warenkorbs zurückbekomme. Oder muss ich die Berechung
doch mit PHP durchführen?


Vielen Dank und liebe Grüße,
Johannes

--
http://johannes.theile.org

Re: Summe berechnen

am 28.03.2006 16:13:20 von Johannes Vogel

Hi Namensvetter

Johannes Theile wrote:
> für einen kleinen Shop verwende ich zwei Tabellen.
> Tabelle shop_articles:
> id, article_number, article_price
> Tabelle shop_cart:
> id, article_number, article_quantity, session_id
>
> Nun möchte ich begrenzt auf einer bestimmte Session-ID die Summe des
> Warenkorbes ermitteln. Zu beachten sei noch, dass ein Produkt mehrmals im
> Warenkorb mit der gleichen Session-ID erscheinen kann und dann evtl. die
> Anzahl unterschiedlich ist. Die Anzahl jedes "Postens" muss dann aber
> addiert werden.

Beachte, dass bspw. die PHP-Session-ID keine zeitlich eindeutige
Identifikation ist. Diese ist nur während der offenen Session
eineindeutig. Das nur nebenbei, schliesslich hat niemand gesagt, PHP
werde eingesetzt.

> Ist es möglich, eine Abfrage in MySQL durchzuführen, dass ich am Ende nur
> die Gesamtsumme des Warenkorbs zurückbekomme. Oder muss ich die Berechung
> doch mit PHP durchführen?

select sum(quantity * price)
from shop_cart join shop_articles on using (article_number)
where session_id = 'abcdef...';

Falls du für den Admin alle Gesamtsummen auflisten möchtest, kannst du
statt `where ...` einfach `group by session_id` verwenden. :-)

HTH, Johannes

Re: Summe berechnen

am 28.03.2006 16:13:24 von Andreas Pankratz

Hallo,

SELECT
SUM(shop_articles.article_price*shop_cart.article_quantity) AS
Gesamtsumme
FROM
shop_articles
INNER JOIN
shop_cart
ON shop_cart.id =3D shop_articles.id
WHERE
shop_cart.session_id =3D 'SESSID'

*ungetestet*

Die Artikelnummer in shop_cart kannste übrigens weglassen.

Gruß
Andi

Re: Summe berechnen

am 28.03.2006 16:39:32 von Johannes Theile

Hallo,
danke Euch beiden für die Tipps.

Hat mich viel weitergebracht und es geht jetzt.


Grüße,
Johannes