Avatar billede qub- Novice
08. april 2005 - 11:35 Der er 10 kommentarer og
1 løsning

Ligge flere posts sammen (pris)

Jeg ved ikke om denne muligvis sku ha været under sql, men da det jo også inkludere php og de fleste php "nørder" jo kan sql skriver jeg den her :)


Jeg har en Tabel der hedder shopping:
CREATE TABLE shopping (
  id int(16) NOT NULL auto_increment,
  session tinytext NOT NULL,
  prod_name varchar(250) NOT NULL default '',
  quantity int(16) NOT NULL default '0',
  prod_id int(32) NOT NULL default '0',
  prod_price decimal(30,2) NOT NULL default '0.00',
  prod_price_sale decimal(30,2) NOT NULL default '0.00',
  date int(16) NOT NULL default '0',
  UNIQUE KEY int (id),
  KEY id (prod_id)
) TYPE=MyISAM;


I den er der jo som sagt så en "prod_price" og en "prod_price_sale". Altså en pris, og en udsalgs pris!

Hver gang en bruger vælger en varer bliver varens navn, pris osv så indlagt sammen med hans sessionid så man har styr på hvem der "ejer" hvad..
Og der bliver oprettet en ny post for hver product personen vælger!

Men mit problem er så at når man vælger mere end et product, så ved jeg ikke rigtig hvordan man skal få flere posts (altså prod_price/prod_price_sale) plusset..


Ved ikke om det kan gøres med sql, eller om det skal gøres med php!


(Jeg har også lidt problemmer med at lave et script som finder ud af om der er valgt en "prod_price_sale" eller ej, og bestemmer hvilken af priserne der skal arbejdes med når den fulde pris skal regnes ud)..


En ordentlig smøre jeg fik skrevet, men håber en kan hjælpe.. :)


Og der er så indlagt (INSERT INTO) 3.. Altså jeg har 3 forskellige priser.. Der så skal ligges sammen :)
Avatar billede bromer Nybegynder
08. april 2005 - 11:46 #1
Det burde være en overskuelig opgave. Hvordan ser din session ud? Hvordan adskiller du de produkter man har i sin "kurv"?
Avatar billede qub- Novice
08. april 2005 - 11:51 #2
Når folk kommer ind på siden får de et random session id, som der så bliver gemt i en cookie..

Hver gang man så vælger et produkt bliver der indsat en post (INSERT INTO << command), med det sessionid, navn, pris osv på produktet..
Avatar billede bromer Nybegynder
08. april 2005 - 11:55 #3
Du indersætter en række i din produkt-tabel? Istedet ville jeg tildele en bruger et sessionid som du gør der peger ned på een række i en cart-tabel. Du skal så også have en tabel der hedder noget i stil med cart_items der indeholder en reference til cart tabellen samt til eet item vedkommende vil købe (og muligvis antallet af denne vare han vil købe).
Avatar billede ldanielsen Nybegynder
08. april 2005 - 11:56 #4
Prøv med

"SELECT SUM(prod_price_sale) FROM shopping WHERE session = '" . $session . "'"

hvor $session er den ønskede sessionid

(Jeg kan kun lidt php, og endnu mindre mysql, jeg er selv til ASP og MSSQL. SUM er en funktion i MSSQL, går ud fra at den hedder det samme i mysql)
Avatar billede qub- Novice
08. april 2005 - 12:06 #5
ida.. Det ser ikke ud til at virke :/ Den får ihvertfald ikke noget resultat!


bromer jeg kan ikke se hvad der er galt i den måde jeg har bygget det op på i forvejen? Hvis jeg har forstået dig rigtigt, så er det også nogenlunde sådan jeg har gjort!
Avatar billede bromer Nybegynder
08. april 2005 - 12:09 #6
Ja, ved nærmere eftertanke ser det sådan ud. Jeg har været lidt for hurtig til at læse hvad du har skrevet og afskrevet det, beklager.

Hvad er der galt med den query ldanielsen har skrevet til dig? Hvis du tester igennem PHP vil du nok gerne give din sum et alias såsom:

"SELECT SUM(prod_price_sale) as prod_price_sale FROM shopping WHERE session = '" . $session . "'"
Avatar billede qub- Novice
08. april 2005 - 12:13 #7
yes nu virker det.. Der sku bare den der as.. på :)

Tror du måske også du ku hjælpe mig med det sidste.. "(Jeg har også lidt problemmer med at lave et script som finder ud af om der er valgt en "prod_price_sale" eller ej, og bestemmer hvilken af priserne der skal arbejdes med når den fulde pris skal regnes ud).."
Avatar billede bromer Nybegynder
08. april 2005 - 12:16 #8
der kan altså være rækker hvor prod_price_sale ikke er defineret eller skal man lede et andet sted om hvorvidt den "gælder"
Avatar billede bromer Nybegynder
08. april 2005 - 14:45 #9
Hvis jeg har genereret en tabel med

create table shopping (
  prod_price_sale float DEFAULT NULL,
  prod_price float
);

så kan jeg udføre følgende query:

SELECT SUM(IFNULL(prod_price_sale,prod_price)) as subtotal FROM shopping WHERE session =  'yoursession';

Jeg testede lige hvor jeg fjernede WHERE-delen. Den query tager en sum af prod_price_sale, men tager prod_price i rækker hvor prod_price_sale er NULL - altså ikke er sat. Passer det til hvad du vil?
Avatar billede qub- Novice
08. marts 2008 - 16:16 #10
..
Avatar billede olebole Juniormester
08. marts 2008 - 17:10 #11
<ole>

qub- >> Nu har du snart haft en Eksperten-bruger i 5 år. Syndes du ikke selv, det er på tide, du finder ud af, hvad Eksperten er - hvordan Eksperten fungerer - og hvordan ganske almindelige, høflige mennesker fungerer mellem hinanden?

/mvh
</bole>
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