Avatar billede michaeltryl Seniormester
24. september 2017 - 08:18 Der er 10 kommentarer

Side som reservere tilbud ide

Hej
Jeg ønsker at lave en side med x antal tilbud - tænker jeg gemmer dem i en database.
Når folk klikker ind for at vil købe tilbudet skal det reservres i f.eks. 5 minutter, hvorefter det bliver muligt at købe det igen, medmindre det blev købt.

Er der nogle ting jeg skal være opmærksom på i kodningen af sådan en side?
min tank er at lave et time/date felt hvor der skrives hvornår en bruger har klikke på tilbuddet og tjekke der om det er 5 minutter siden.
men er der andre ting?
Avatar billede claes57 Ekspert
24. september 2017 - 09:59 #1
en oprydningskørsel, der sletter alle de udgåede dato/tid varenummer poster - med mindre du vil lave en klik-statistik for at se, hvor mange klik, der fører til handel.
Avatar billede michaeltryl Seniormester
24. september 2017 - 10:02 #2
Tak for det tip :-)
Avatar billede arne_v Ekspert
24. september 2017 - 15:59 #3
Du skal have styr paa samtidighedsproblemer.

Saa TRANSACTION ISOLATION LEVEL REPEATABLE READ.

For at finde tilbud:

SELECT * FROM tilbud WHERE reserveret IS NULL OR reserveret < [5 minutter siden]

For at reservere:

antal = UPDATE tilbud SET reserveret = [nu] WHERE id = [id paa tilbud] AND (reserveret IS NULL OR reserveret < [5 minutter siden])

og test paa antal.

Det i [] skal erstattes af rigtige vaerdier.
Avatar billede michaeltryl Seniormester
24. september 2017 - 16:58 #4
Tak for dit bud arne_v
Avatar billede claes57 Ekspert
24. september 2017 - 17:08 #5
Kunden skal også have id på posten, ellers kan han ikke bagefter gennemføre købet, da vare er reserveret til ukendt.
Avatar billede showsource Seniormester
24. september 2017 - 18:47 #6
"og test paa antal." skal da gøres i samme "åndedrag"
Avatar billede michaeltryl Seniormester
24. september 2017 - 19:02 #7
Det gør jeg allerede :-)
Tror så småt jeg er ved at have noget strikke sammen, så nu skal jeg lige have testet det ordentligt igennem.

Tak for alle jeres bud.
Ved ikke lige hvilket svar jeg skal markere som løsning, så er det ok jeg bare tager det første?
Avatar billede showsource Seniormester
24. september 2017 - 19:08 #8
Nix, ikke førend du visert dit sql kald :O)
Avatar billede claes57 Ekspert
24. september 2017 - 19:19 #9
arne_v er den geniale php-mand - vi andre prøver bare at kloge os.
Avatar billede michaeltryl Seniormester
24. september 2017 - 19:19 #10
$kund = mysql_query("SELECT * FROM tilbud WHERE aktiv_dato_fra <= NOW() AND reserveret ='0' ORDER BY aktiv_dato_til ASC") or die(mysql_error());
while ( $a = mysql_fetch_array($kund))

Dette viser hvilke tilbud som kan vælges.
Når et tilbud så vælges, sendes man til en ny side hvor der sættes en tid i et feltet "reserveret tid"
Dette felt checkes der så op på forskellige steder for at være sikker på et tilbud ikke kan vælges, så længe det er reserveret
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

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



IT-JOB