Webshop Database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erik van Heck

Erik van Heck

01/10/2010 22:17:33
Quote Anchor link
Hallo allemaal,

Ik blijf vast zitten in een probleem met aanleiding van een webshop bouwen.
Elke keer als er iemand komt op de webshop, dan wordt er een random nummer aangemaakt als tabel in een MySQL database met als naam het random nummer. Dat is dan het winkelwagentje. Elk product wat er bijkomt zet hij simpel in het winkelwagentje en op de winkelwagen-pagina leest hij die gegevens er weer uit. Allemaal geen probleem. Nou is het volgende: hij maakt bij elke random nummer een tabel aan. Maar na een paar honderd gasten is die database natuurlijk overvol want die tabellen worden niet verwijderd. Nou heb ik een link VENSTER SLUITEN op de homepage geplaatst en als je daarop klikt word de sessie met het random nummer weggegooit en de database gedropt. Alleen 1 probleem: wat nou als je daar niet op klikt maar gewoon kruisje klikt. Dan voert PHP ook niet de drop-table code uit. Ik heb al zitten proberen dat als je de browser sluit en dan een popup krijgt van WILT U HET ECHT AFSLUITEN? en dan doorgestuurd naar de pagina waarbij de sessie en de table word gedropt. Maar dat is niet echt gebruiksvriendelijk.

Wat moet ik nu doen zodat de tabellen toch verwijderd worden, als de gebruiker uit de browser is.

Met vriendelijke groeten,
Erik van Heck
 
PHP hulp

PHP hulp

23/12/2024 18:51:20
 
Noppes Homeland

Noppes Homeland

01/10/2010 22:21:11
Quote Anchor link
"wordt er een random nummer aangemaakt als tabel in een MySQL database"
-> dat is al fout

Of je kiest ervoor met sessie te werken tot aan het afrekenen of je plaats de artikelen in 1 winkelwagen tabel

Alles wat je anders verzint is verdoemd te mislukken.

Advies: begin gewoon opnieuw en denk eerst na voordat je iets gaat bouwen.
 
Aad B

Aad B

01/10/2010 22:55:29
Quote Anchor link
wordt er echt een tabel aangemaakt als in "CREATE TABLE random-nummer" ??
of wordt er een record of meerdere records toegevoegd in een tabel ?
 
Noppes Homeland

Noppes Homeland

01/10/2010 23:01:45
Quote Anchor link
@Aad, er staat toch echt dat voor elk random gegenereerd nummertje een tabel wordt gecreeerd en dat er dan ook nog eens een poging wordt gedaan deze te droppen als de gebruiker gaat fietsen.

Lekker handig, gaatje zoeken en alles ligt op straat of is in het duister verdwenen.
 
Aad B

Aad B

01/10/2010 23:21:07
Quote Anchor link
@Noppes: ik had over het DROPPEN van de tabel heengelezen. Dit is wel een heel slechte winkelwagen methodiek. bagger scripts naar prullenbak verwijzen.
 
Tobias Tobias

Tobias Tobias

02/10/2010 09:45:39
Quote Anchor link
Je kunt beter met session werken. zie de tutorial hier op phphulp.nl

Anders kun je ook een scripje schrijven dat controleert of een tabel ouder is dan x dagen (je zult dan wel een datum moeten meegeven aan je tabellen) en deze verwijdert.

Als je de winkelwagen in een database wilt opslaan is idd 1 tabel waarin je alle winkelwagens zet, bijv:
id (autoincrement, primairy)
winkelwagen_id
artikel_id
artikel_aantal
artikel_prijs (evt)
datum

winkelwagen_id kun je beter bepalen met bv date('Ymd-hms')
Aan de hand van datum kun je weer een scriptje maken die regelmatig de oude rijen verwidjert
 
Martijn B

Martijn B

02/10/2010 11:24:54
Quote Anchor link
De database structuur van een PHP project veranderd nooit. Tenzij je bezig bent met een ontwikkel versie van je project.

Wat je kunt doen is:
- Een eigen sessie systeem maken
sessions tabel met daarin gebruikers sessies
in een sessie tabel zit een sessie id (een uniek random nummer)
dit sessie id word in een cookie gestopt
Sessies kunnen verlopen als een gebruiker een sessie maakt dan wordt er b.v. een x aantal verlopen sessies uit de tabel verwijderd. Zodat je tabel niet blijft groeien.
- Gebruikt maken van $_SESSION. Wat vergelijkbaar is met bovenstaande. Alleen je hoeft dit zelf allemaal niet meer te maken.
Gewijzigd op 03/10/2010 11:01:50 door Martijn B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.