Avatar billede stroke1 Nybegynder
17. maj 2004 - 00:59 Der er 13 kommentarer

summere data fra tabel

Hej.
Jeg skal have summeret nogle tal fra en tabel i en MySQL database. Det handler om at en kunde der er logget ind i en shop med sin emailadresse, kan se hvilke ordrer han tidligere har foretaget. Nu vil jeg så gerne have summmeret de beløb som han har købt for. Jeg starter så med at vælge de orders_id fra en tabel, som er de ordrer kunden har lavet.
I en anden tabel har jeg så samtlige  orders_id samt beløbene for de enkelte ordrer. Men hvordan får jeg udtaget og lagt sammen de beløb, som svarer til de beløb som kunden tidligere har lagt ordre for ???
Avatar billede stroke1 Nybegynder
17. maj 2004 - 01:00 #1
Det skal lige siges at i den anden tabel med beløbene, er der jo også andre kunders ordrer !
Avatar billede swaxi Nybegynder
17. maj 2004 - 01:31 #2
noget a la :
SELECT SUM(`price`) AS `sum` FROM `orders` WHERE `order_id`='1'
Avatar billede stroke1 Nybegynder
17. maj 2004 - 01:42 #3
ja der er bare det ved det, at orders_id har forskellige vædier !
Ved ikke hvordan jeg laver en WHERE sætning hvor orders_id kan være lig eks. 1,2,3 ???
Avatar billede Slettet bruger
17. maj 2004 - 03:03 #4
Jeg vil foreslå, at du laver en samlet query, der slår det hele op på en gang. Jeg vil gerne hjælpe, men så skal jeg vide lidt mere præcist, hvordan dine data er organiseret.
Avatar billede krydset Nybegynder
17. maj 2004 - 08:47 #5
SELECT SUM('price') AS 'sum' FROM users, order WHERE users.order_id = order.order_id AND users_id = '$bruger_id'

Prøv det engang du skal selv rette navne til som du vil ha den :-P
Avatar billede stroke1 Nybegynder
17. maj 2004 - 13:26 #6
jeg har to tabeller.
1. orders - her har jeg email adresse : customers_email_adress , som bruges ved login, og kan så se hvilke ordre kunden har lagt : orders_id

2. orders_products - vha. af orders_id kan jeg her se hvad de enkelte ordre beløber sig til : price

disse beløb (price) vil jeg så gerne have summen af. Men kan ikke lægge alle prices sammen da alle andre kunders ordre også er i tabellen !

Håber det hjælper på forståelsen!
Avatar billede Slettet bruger
17. maj 2004 - 15:45 #7
Det vil gøre det meget lettere for dig selv, hvis hver ordre i orders_products har et kundeid.

Prøv engang at læse http://www.eksperten.dk/artikler/234
Avatar billede stroke1 Nybegynder
17. maj 2004 - 16:00 #8
ja med emailadressen måske.
Avatar billede stroke1 Nybegynder
17. maj 2004 - 16:40 #9
Ved bare ikke lige hvor der indsættes data i tabellen orders_id henne i denne kode :
http://digimaten.dk/checkout.txt
Avatar billede Slettet bruger
17. maj 2004 - 16:50 #10
Jeg er nærmest overbevist om, at et så udbredt system som oscommerce allerede har en fornuftig struktur på tabellerne.

Det er bare for stort til at jeg har lyst til at skulle gennemskue det for at finde ud af, hvordan du skal gøre. Hvis du er god til engelsk kunne det måske være en ide at spørge på http://forums.oscommerce.com/
Avatar billede stroke1 Nybegynder
17. maj 2004 - 23:00 #11
ok prøver at finde hjælp der :-)
Avatar billede swaxi Nybegynder
24. maj 2004 - 14:10 #12
Så kan du joine de to tabeller sammen. MySQL er ikke så skrap til dette. Hvis du brugte en ordentlig db-server, ville du kunne gøre det mere effektivt (og lettere læseligt) med et inner select. Men i MySQL skal du lave noget i den her stil :

SELECT SUM(`orders_products`.`price`)
FROM `orders`,`orders_products`
WHERE `orders`.`orders_id`=`orders_products`.`orders_id`
Avatar billede stroke1 Nybegynder
24. maj 2004 - 14:14 #13
ok vil da prøve det swaxi, vender tilbage i aften !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester