Hvis du har en database tilknyttet til dit system. Så vil foretrække at bruge sessions i stedet.
Og så gemme de varer man har tænkt sig at købe i databasen.
På den måde undgår du en masse underligt kode med at explode cookies, sætte arrays i cookies og hele taget cookies generelt. Jeg er ikke den store fan af cookies og e-handel i samme smører.
Ok. Ja har database med i det og har intet imod at bruge det.. Men hvordan vil du kombinere det?? Så databasen ikek bliver fuld af folk der har smidt noget i kurven og så gået ud af siden ??
Når en bruger så tilføjer en varer til kurven, så ligger du varen i din tabel, sammen med dato og klokkeslet, varens id samt brugerens unikke id.
Så er det simpelt at hive ud fra databasen. Slette, redigere og hvad du nu ellers har lyst til. - Samtidigt undgår du cookies. De er ikke fede til e-handel, bla. fordi brugeren kan have disabled cookies osv.
For ikke at din tabel skal blive fyldt op med ubrugelig data, som tilfældige brugere har smidt i kurven. - Så kunne du slette alle records i tabellen der var mere end X antal timer gammelt hele tiden.
Hvis du ikke vil lege med cron job eller noget andet i den dur. Så kunne du jo være fræk, og lave en query der slettede alle "gamle" records, hver gang en bruger tilføjede en varer.
Hvorfor ikke bare bruge din session til håndtering af det hele? Jeg ser det som lidt spild af ressourcer at bruge en database, når du har så få oplysninger, som skal håndteres.
Du har et session array indeholdende de forskellige varer på formen $_SESSION['varer'][$id] = $antal
Arraynøglen angiver så varenummer, og arraynøglens værdi angiver antal af den pågældende vare. For at finde ud af hvor mange varer der totalt er i indkøbskurven, tæller du blot dit session array.
7th: spild af resourcer... Tja, hvor mange micro millisekunder tager det længere at dykke et en fornuftigt opbygget db struktur, frem for at loope et array fra en session????
Og hvad gør du når du skal logge alt hvad folk laver? - Udvider din sessions med et endnu størrer multidimentional array?
Hvad når du skal lave statistikker... Logger IP adresser. Eller hvad man nu måtte have lyst?
Jeg tvivler stærkt på at det er nogen fordele ved at have et kæmpe array i sine sessions.
Den skifter jo userid hele tiden så der er jo ingen fordel i det mere. Så når den dykker ned i databasen for at henteuseridét på den bruger der er på siden vil den aldrig finde noget lige meget hvor mange varer man tilføjer
For at finde ud af hvor mange varer der totalt er i indkøbskurven, tæller du blot dit session array. < Og hvad hvis man bruger sine sessions til mere en bare den kurv. :-)
Nb. jeg har ikke sovet i herre mange timer (IGEN), så hvis jeg formulerer mig som en and, så vil jeg tillade mig at give det skylden ;)
Jeg snakker ikke om micro millisekunder, men om det kan betale sig at bruge både en session og en database til at lagre en indkøbskurv, når der kun er tale om to parametre - to numre.
Som udgangspunkt går jeg personligt ikke ud fra, at en brugeren vælger at lægge varer i inkøbskurven, for derefter at logge sig af eller lukke browseren, logge sig på igen og bestille varerne fra indkøbskurven.
Hvis du gerne vil bruge en database kunne du for eksempel oprette en tabel med et navn som er lig med session_id. I tabellen lagre du så bare varenummer og antal.
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.