Avatar billede s0mmer Nybegynder
20. marts 2007 - 17:45 Der er 10 kommentarer

Ideen bag en shop/indkøbskurv

Hej eksperter,

Jeg er igang med at lave en shop og jeg mangler lidt hjælp.
Når man shopper rundt online. Hvordan "lagres" de enkelte varer man vælger til sin indkøbskurv som regel? Hvad er den nemmeste måde? Fordi det er jo uhåndterligt med sessions osv da du ikke aner hvor mange varer der bliver valgt til indkøbskurven..

På forhånd tak
Avatar billede radion Nybegynder
20. marts 2007 - 18:09 #1
En database er en nem løsning i hvert fald

en tabel med
ID //autogenereret id
vareID //hvilken vare man har i kurven
antal // hvor mange af pågældende vare man har i kurven
SESSIONID //her gemmer du det session_id som folk har
Avatar billede radion Nybegynder
20. marts 2007 - 18:10 #2
et session_id() er unikt for hver browser session, og med dette kan du gemme, hente, update hvilke varer folk har i kurven :)
Avatar billede s0mmer Nybegynder
20. marts 2007 - 18:25 #3
det forstår jeg godt.. men det jeg ikke forstår er når varerne så skal listes. hvordan ved jeg hvor mange sessions der er? og hvad de egentlig hedder?

altså når vi snakker om det her tænker jeg følgende:
kunden finder 2 varer og gemmer som sessions:
test1 og test2

så når varer skal listes eks når han skal gennemgå betalingen. så for at vise de to varer forestiller jeg mig at disse to sessions skal udskrives, men hvordan?
Avatar billede radion Nybegynder
20. marts 2007 - 19:20 #4
nej, de bliver ikke gemt i sessions.. de bliver gemt i en database, hvor det ID der sammenkæder varer med kunden er kundens SessionID

php.net/sessionid
Avatar billede radion Nybegynder
20. marts 2007 - 19:22 #5
og når du vil liste varerne så kører du bare en sql query:

"select * from varetabel where sessionid='".session_id()."'";
Avatar billede htx98i17 Professor
20. marts 2007 - 20:03 #6
du kan registrere variabler til sessions, eksempelvis et array der indeholde indkøbskurven:

session_start();
session_register("arr_shop");
$arr_shop[1] = 2;
$arr_shop[4] = 3;

$_SESSION['arr_shop'] = $arr_shop;

foreach($_SESSION['arr_shop'] AS $id=>$antal) {
echo$id." ".$antal."<br>\n";
}
Avatar billede j4k0b Nybegynder
21. marts 2007 - 14:35 #7
Se PHP's dokumentation på OOP: http://dk.php.net/oop

De bruger en indkøbskurv som eksempel :)
Avatar billede s0mmer Nybegynder
26. marts 2007 - 12:01 #8
jeg vender tilbage ligeså snart jeg har afprøvet det hele.
Avatar billede s0mmer Nybegynder
28. marts 2007 - 17:11 #9
Hej igen, jeg brugte som i omtalte, at hver gang en vare tilføjes til kurven, så gemmes sessionid og alle de andre ting. Men har lige et spørgsmål. På denne måde kommder der en masse indhold til databasen, fordi kunder typisk bare smider ting i indkøbskurven for at se den samlede pris, uden at købe det. Skal man ikke have noget halløj for at få slettet rigtige gamle indlæg i databasen?
Avatar billede radion Nybegynder
28. marts 2007 - 17:23 #10
hej s0mmer


Jo, det har du helt ret i.
For det første, hvis folk gennemfører et køb, bliver alt hvad der knytter sig til deres session_id() slettet i dén tabel.

Jeg har et tidsstempel i tabellen også.
og så kører jeg et script der kigger på hvornår et session_id har tilføjet noget til databasen første gang, og hvis dette tidsstempel er sat for mere end 48 timer siden, så bliver alt ved dette session_id() slettet.

måden jeg sørger for at dette bliver kørt, er ved den gratis service cronjob.de
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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