Avatar billede nightowl24 Nybegynder
07. oktober 2003 - 15:46 Der er 10 kommentarer og
1 løsning

Problem med betalingssystem og ordrenummer

Hejsa

Jeg er ved at lave en online butik og benytter mig af freepay.dk.

Jeg har lavet en form hvor kunden skal indtaste kortnummer osv.

Ordrenummeret skal ”vedhæftes” som et ”hidden field”.

Odrenummeret findes ud fra en database med tidligere ordrer (det største ordrenummer lokaliseres og der lægges 1 til).

Hvis nu der er 2 kunder der samtidigt er inde på betalingssiden får de samme ordrenummer.

Hvad kan man gøre for at undgå dette?

/Nightowl
Avatar billede netro Nybegynder
07. oktober 2003 - 15:49 #1
Indsæt først en ny post med kundens data og find så ordrenummeret for denne post.
http://www.opfinderen.dk/sites/?id=13
Avatar billede netro Nybegynder
07. oktober 2003 - 16:00 #2
Sagt på en lidt anden måde - reservér en post til kunden, når han/hun kommer ind på siden med formularen og find ordrenummeret/autonummereringsnummeret for denne post og indsæt så dette nummer i dit skjulte felt.
Løbende kan du så slette poster, der er f.eks. 2 dage gamle, hvor kunden ikke har gennemført ordren men blot fået reserveret en post.
Avatar billede jmarkling Nybegynder
07. oktober 2003 - 23:23 #3
Denne nemme ville også være at lade ordrenummeret være autogeneret i db'en, idet posten gemmes... kan ihvertfald lade sig gøre i access, kan ikke huske om man kan i MySQL og MSSQL... Så du lader bare ordrenummeret være pk for din tabel...
Avatar billede jmarkling Nybegynder
07. oktober 2003 - 23:30 #4
Ups, læste ikke spørgsmålet korrekt, slet mit svar... og gør som netro siger.
Avatar billede nightowl24 Nybegynder
08. oktober 2003 - 08:17 #5
netro - den skal jeg lige tænke lidt over...
Avatar billede nightowl24 Nybegynder
08. oktober 2003 - 09:17 #6
Jeg har prøvet denne her:
SQL = Conn.Execute("Select @@Identity As NytID From Tabel")

Men får at vide at der er typeuoverensstemmelse.
Avatar billede netro Nybegynder
08. oktober 2003 - 14:05 #7
Husk at anvende den lige efter din sidste insert:

Conn.Execute("Insert Into Tabel(Dato) Values(Now())")
Set rs = Conn.Execute("Select @@Identity As NytID From Tabel")

<---klip--->

<form .......... >
<input type="hidden" value="<% = rs("NytID") %>" name="ordrenr">
</form>

Posten der netop er blevet indsat, opdateres med alle kundens data, når formularen er sendt, og bestillingen er gennemført.
Avatar billede nightowl24 Nybegynder
08. oktober 2003 - 14:44 #8
Okay :)
Avatar billede nightowl24 Nybegynder
08. oktober 2003 - 14:47 #9
Med hensyn til det første du skrev. Hvis nu en kunde kommer ind og får tildelt et ordre nummer fx. 7 og der så kommer en anden ind som får nummer 8. Hvis nu den første kunde smutter igen så får kunde nr. 2 ordrenummeret 8. Bliver 7 så ikke sprunget over? Eller har jeg misforstået et eller andet?
Avatar billede netro Nybegynder
08. oktober 2003 - 14:50 #10
Jo, så springes 7 bare over, men det kan jo være ligegyldigt. Det væsentlige er, at kunden får et unikt ordrenummer.
Avatar billede nightowl24 Nybegynder
08. oktober 2003 - 14:51 #11
Okay
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