11. april 2004 - 08:45Der er
9 kommentarer og 1 løsning
Sessions til indkøbskurv
Er der nogen der kan hjælpe mig med sessions i en indkøbskurv. Jeg har siddet i flere timer men kan ikke få løst følgende problemstilling.
Der skal laves et catalog hvor man kan tilføje et bestemt antal af en varer, hvor der derefter bliver lagt det bestemte antal i en indkøbskurv. Hvis den samme vare tilføjes igen skal den lægge antallet sammen. Mit problem er at få et antal hæftet på en sessions og få sessions til at genkende hinanden og lægge antallet sammen.
Det lyder for mig som om, at du bruger flere sessions. Jeg har før lavet en indkøbskurv styret ved hjælp af blot en session. Det vil jeg også anbefale dig.
Det nemmeste for dig vil være, at lave indkøbskurven ved hjælp af dimentionalle arrays i din session. Således at du har et array, men en masse små arrays indeni for hver vare.
Det lyder måske lidt indviklet, men jeg er ikke så god til at forklare ;o)
Det jeg plejer at gøre, er blot at registrere et unikt sessionid som sessionvariabel. Denne variabel bruger jeg så i en MySQL tabel kaldet fx basket. Her tilføjes, slettes og opdateres varer løbende via det unikke sessionid. Det er nemt på på den måde, og samtidig giver den en masse muligheder for statistik.
Fx: SELECT id FROM basket WHERE session='$sessionid' AND vareid='$vareid'
Hvis antal af records = 0: INSERT INTO basket (session, vareid, antal) VALUES ('$sessionid', '$vareid', '$quantity')
Hvis antal af records fra tidligere > 0: UPDATE basket SET antal = antal + '$quantity' WHERE sessionid = '$sessionid' AND vare = '$vareid'
Husk lige godt hvilken løsning, du vælger: lav inputvalidering!
jeg har siddet og leget med det som dennismp sagde kunne bruges. Men jeg få ikke rigtig udskrvet noget. Hvad gør jeg galt mine to documenter ser således ud:
"If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled. "
Så fik jeg rykket rundt og slettet lidt. Og den udskriver og lægger antallet sammen, men jeg kan ikke få hæftet et navn på de enkelte antal. hvad gør jeg nu galt???
Det jeg mente var også hvordan man skrev id'et ud. Men vil gerne skrive det ud inden jeg begynder at vedhæfte noget til en database. Vil gerne have forståelsen.
Når jeg laver min foreach så skiver den kun antal ud og hvis jeg sætter array_key foran skriverd en kun id'et ud.
den ser stadig således ud:
if (isset($_SESSION['shopcart'])) { echo "<strong>Your cart:</strong><br>"; foreach (($_SESSION['shopcart']) as $p) { echo " $p<br>"; }
}
Skal jeg sætte noget mere ind i foreach og hvad eller skal det skrives pp den anden måde???
Jeg skal ligge et svar før du kan, det er hermed gjort.
Synes godt om
Ny brugerNybegynder
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.