Avatar billede eromaster Nybegynder
30. maj 2011 - 17:24 Der er 8 kommentarer og
1 løsning

Indkøbskurv

Nu har jeg siddet og stenet ALT for lang tid over det her indkøbskurv og sørger derfor nu hjælp.

Jeg har en access database connection der hedder "dbConnection" og i denne database er der en tabel der hedder "ProdukterTBL". Hvert produkt har selvfølgelig et "ID" "Navn" og en "Pris".

Jeg skal bare have lavet en session script, så man kan fortsætte med at "shoppe" inden man "tjekker" ud.

Nogen der kan hjælpe? Er totalt på bar bund.


sql = "SELECT * FROM ProdukterTBL WHERE ID=" & QID
Set rsProdukt = Server.CreateObject("ADODB.Recordset")
rsProdukt.Open sql, dbConnection, 1, 3
Avatar billede LilleUdvikler Nybegynder
30. maj 2011 - 18:22 #1
Jeg har ikke svaret på dit spørgsmål.

Men måske du skulle lukke nogle af dine tidligere spørgsmål. Du har 1185 point ude. Det er ret mange - og det giver ikke lige frem lyst til at hjælpe dig. :o)
Avatar billede eromaster Nybegynder
30. maj 2011 - 18:52 #2
#1 Ah, det havde jeg slet ikke set. Gør jeg med det samme.
Avatar billede softspot Forsker
30. maj 2011 - 20:54 #3
Styr det i databasen i stedet for en session. Dvs. tjek om brugeren kommer med en kurv-cookienøglen og tjek så databasen om den findes. Hvis den findes, så arbejd videre med den fundne kurv. Hvis den ikke findes, så opret en ny kurv-nøgle (og gem den i en cookie til næste gang kunden vil noget i din shop) og benyt den til at opbevare data om kundens kurv.

Med denne strategi er du fri for at tænke på sessions og de udfordringer som kan opstå, dels hvis serveren lukker ned for den workerprocess din session kører i, dels hvis dit site kommer til at ligge på flere servere (webfarm). Desuden er det nemmere at portere til en anden platform, når nu du bliver træt af ASP... :-)
Avatar billede eromaster Nybegynder
30. maj 2011 - 22:30 #4
#3 Det er fandme en god ide det der! Jeg arbejder videre på det - smid lige et svar for hvis det lykkedes så fortjener du de 200 point.

Nogle gange kan man virkelig få tunnelsyn af at give på den samme kode :)
Avatar billede softspot Forsker
31. maj 2011 - 00:00 #5
Sig til hvis du har brug for nogle konkrete idéer til hvordan dette skal implementeres :-)
Avatar billede eromaster Nybegynder
31. maj 2011 - 00:26 #6
Har fået det hele til at virke! Super simpelt og lige til.
Jeg bukker og takker
Avatar billede maddog_em Nybegynder
31. maj 2011 - 07:29 #7
Hej Softspot og eromaster
nu er spørgsmålet godt nok besvaret - men jeg håber at det er ok er jeg spørger lidt ind til svaret...
du vil styre det via DB - vil du så skrive en cookie ind i tabel
"ProdukterTBL" og tjekke på brugerens cookie?

hvis det nu er en shop hvor der handler rigtig mange i løbet af et år, så vil der da komme ligeså mange cookie til at ligge i DB som der er forskellige handlende, eller handlene hvor deres cookie er udløbet

vil du ændre på cookie'en løbende udervejes, jeg mener når kunden er kommet til betaling/bestilling, så skal kurven jo tømmes - hvordan ser det så ud næste gang man går ind på siden, er det så via en cookie

Beklager - men jeg kan ikke helt gennemskue det, det er sikkeret helt ligetil, kan bare ikke se "lyset"
Avatar billede softspot Forsker
31. maj 2011 - 09:01 #8
Den nøgle som genereres og sendes frem og tilbage mellem klienten og serveren skal bruges som identifikation af denne specifikke klients kurv på serveren, dvs. informationer om kurvens indhold skal gemmes i databasen og tilknyttes nøglen fra cookien. Tabellen med kurvdata kunne f.eks. se således ud:

kurv = 
    cookienoegle
  + produktid
  + antal


Desuden ville jeg nok vægle at lave en separat tabel til at holde styr på cookienøgler og deres alder, f.eks. i en tabel der ser således ud:

cookies =
    cookienoegle
  + senestbrugtdato


hvor senestbrugtdato er det tidspunkt hvor brugeren sidst har forestpurgt en side på sitet. Således kan man lave et oprydningsjob der bare sletter alle cookies og dertil hørende kurve som er f.eks. en dag gamle.

Der vil være en ophobning af cookienøgler i databasen, hvis man ikke sørger for at rydde op i dem efterhånden som dels ordrer gennemføres, dels forældes.

Den første med at rydde op når en ordre gennemføres er relativ let at slippe afsted med, for der er ligesom en handling man kan koble oprydningen på (altså at ordren oprettes). Den anden skal man selv sørge for at sætte igang, men det kan evt. gøres vha. en "planlagt opgave" på serveren, eller med nogle passende intervaller, når serveren alligevel bliver kaldt af en bruger (dvs. i et eller andet script, som udføres jævnligt kan man tjekke databasen for om der er cookies som er blevet for gamle og så slette de kurve der har en vis alder).

Mht. cookien, så ville jeg personligt vælge at oprette en cookie som udløb når browseren lukkes, således brugeren kan anvende den samme kurv sålænge denne benytter samme browserinstans. Når browseren lukkes slettes brugerens cookie lokalt og den på serveren vil være "forældreløs og ligge til senere oprydning (jf. en af ovenfor beskrevne oprydningsstrategier).
Avatar billede maddog_em Nybegynder
31. maj 2011 - 09:30 #9
OK - det lyder fornuftig nok, tror måske at man skal sidde med en konkret opgave for at det virker 100% logisk.

eromaster:
var det sådan du løste dit problem?
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
Kurser inden for grundlæggende programmering

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