Webshop Database
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
-> 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.
of wordt er een record of meerdere records toegevoegd in een tabel ?
Lekker handig, gaatje zoeken en alles ligt op straat of is in het duister verdwenen.
@Noppes: ik had over het DROPPEN van de tabel heengelezen. Dit is wel een heel slechte winkelwagen methodiek. bagger scripts naar prullenbak verwijzen.
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
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