Købssystem

Tags:    php

Hej

jeg er igang med at lave et købssystem men tænkte lidt over om man skal lave det i sessions altså når man trykker på køb og den lægger det i kurven, eller hvordan?

--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
tjeck lige http://www.udvikleren.dk/groups/?gid=18 hvis du vil hjælpe med at lave et godt spil!



8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Du kan oprette en session som et array (der er vist et andet ord for det, men kan ikke huske det i skrivende stund).
Se dette eksempel:
Fold kodeboks ind/udKode 


Det vil producere følgende:
Array
(
[0] => 32
[1] => 12
[2] => 46
)

Du kan på den måde gemme de varer numre der er i kurven.

Hvis du så vil lave så man kan have flere af hver slags varer, så kan du lave det på to måder. (Måske flere, men det var hvad jeg lige kunne finde på ;))

1. Den nemme, men grimme
Isteden for at indsætte varenumret, så indsætter du det på følgende form:
varenummer|antal.

Så der kommer til at stå:

$_SESSION['kurv'][] = $varenummer."|".$antal;

Så kan du med explode (http://php.net/explode) dele den op ved stregen:
$vareinfo = explode("|", $_SESSION['kurv'][$id])
$varenummer = $vareinfo[0];
$antal = $vareinfo[0];

2. Den svære, men pæne
Lav en klasse, der indeholder det du skal bruge. Lav et objekt med værdierne og smid det i "session-arrayet".
Jeg gidder ikke lige beskrive det nærmere. Hvis du ved hvordan du bruger OOP, så ved du også hvordan dette gøres. Ellers så spørg :)

Hilsen

Martin Dybdal (Dybber)

[Redigeret d. 19/01-05 23:19:45 af Martin Dybdal]



Hmm, jeg har lavet et sådant system også
(http://dtwebshop.lir.dk)

Og jeg har gjort sådan, at hvis session ($koeb) ikk eksisterer, så skriver den følgende:

$koeb = "$vareid";
session_register(koeb);

Og hvis den har sessionen:

$koeb = "$koeb,$vareid";
session_register(koeb);

Når jeg så skal hente det ud igen:

$varekoeb = explode(",",$koeb);
for($i=0; $i<count($varekoeb); $i++){
$vare = sql_query("SELECT * FROM varer WHERE(id='$varekoeb[$i]')");
$vare = mysql_fetch.........


Håber du forstår den, og kan bruge den ;)

---------------------
Daniel Truelsen
Webmaster @ http://dtweb.lir.dk



Hej

jeg er igang med at lave et købssystem men tænkte lidt over om man skal lave det i sessions altså når man trykker på køb og den lægger det i kurven, eller hvordan?

--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
tjeck lige http://www.udvikleren.dk/groups/?gid=18 hvis du vil hjælpe med at lave et godt spil!


Det er nok en god idé, du kan også gemme det i en database, men under alle omstændigheder skal du nok bruge sessions til at holde styr på det.

Mvh Bob



Hej

jeg er igang med at lave et købssystem men tænkte lidt over om man skal lave det i sessions altså når man trykker på køb og den lægger det i kurven, eller hvordan?

--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
tjeck lige http://www.udvikleren.dk/groups/?gid=18 hvis du vil hjælpe med at lave et godt spil!


Det er nok en god idé, du kan også gemme det i en database, men under alle omstændigheder skal du nok bruge sessions til at holde styr på det.

Mvh Bob

okay men kan man så lave noget så den selv opretter en ny session istedet for at man skal sige at hvis session 1 er oprettet så skal den oprette session 2 og hvis den er oprettet... der må være en smartere måde, også at indlæse det på!
--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
tjeck lige http://www.udvikleren.dk/groups/?gid=18 hvis du vil hjælpe med at lave et godt spil!



Hej

jeg er igang med at lave et købssystem men tænkte lidt over om man skal lave det i sessions altså når man trykker på køb og den lægger det i kurven, eller hvordan?

--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
tjeck lige http://www.udvikleren.dk/groups/?gid=18 hvis du vil hjælpe med at lave et godt spil!


Det er nok en god idé, du kan også gemme det i en database, men under alle omstændigheder skal du nok bruge sessions til at holde styr på det.

Mvh Bob

okay men kan man så lave noget så den selv opretter en ny session istedet for at man skal sige at hvis session 1 er oprettet så skal den oprette session 2 og hvis den er oprettet... der må være en smartere måde, også at indlæse det på!
--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
tjeck lige http://www.udvikleren.dk/groups/?gid=18 hvis du vil hjælpe med at lave et godt spil!



Hvis du starter en session vil den altid have et individuelt id for hver enkel bruger, det id kan f.eks. bruge til at holde styr på tingene i databasen, eller du kan gemme det hele i selve sessionen.

http://dk.php.net/manual/en/ref.session.php

Læs mere om sessions der, jeg vil foreslå at du "lærer det udenad" før du begynder på noget så stort som en webshop eller deromkring. :)

God fornøjelse

Mvh Bob



Du kan oprette en session som et array (der er vist et andet ord for det, men kan ikke huske det i skrivende stund).
Se dette eksempel:
Fold kodeboks ind/udKode 


Det vil producere følgende:
Array
(
[0] => 32
[1] => 12
[2] => 46
)

Du kan på den måde gemme de varer numre der er i kurven.

Hvis du så vil lave så man kan have flere af hver slags varer, så kan du lave det på to måder. (Måske flere, men det var hvad jeg lige kunne finde på ;))

1. Den nemme, men grimme
Isteden for at indsætte varenumret, så indsætter du det på følgende form:
varenummer|antal.

Så der kommer til at stå:

$_SESSION['kurv'][] = $varenummer."|".$antal;

Så kan du med explode (http://php.net/explode) dele den op ved stregen:
$vareinfo = explode("|", $_SESSION['kurv'][$id])
$varenummer = $vareinfo[0];
$antal = $vareinfo[0];

2. Den svære, men pæne
Lav en klasse, der indeholder det du skal bruge. Lav et objekt med værdierne og smid det i "session-arrayet".
Jeg gidder ikke lige beskrive det nærmere. Hvis du ved hvordan du bruger OOP, så ved du også hvordan dette gøres. Ellers så spørg :)

Hilsen

Martin Dybdal (Dybber)

[Redigeret d. 19/01-05 23:19:45 af Martin Dybdal]


tak det var det jeg ledte efter men hvordan læser jeg dem så?
--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
tjeck lige http://www.udvikleren.dk/groups/?gid=18 hvis du vil hjælpe med at lave et godt spil!




tak det var det jeg ledte efter men hvordan læser jeg dem så?


Det nemmeste vil være at bruge foreach, se manualen:
http://dk.php.net/foreach

Hilsen

Martin Dybdal (Dybber)



Hmm, jeg har lavet et sådant system også
(http://dtwebshop.lir.dk)

Og jeg har gjort sådan, at hvis session ($koeb) ikk eksisterer, så skriver den følgende:

$koeb = "$vareid";
session_register(koeb);

Og hvis den har sessionen:

$koeb = "$koeb,$vareid";
session_register(koeb);

Når jeg så skal hente det ud igen:

$varekoeb = explode(",",$koeb);
for($i=0; $i<count($varekoeb); $i++){
$vare = sql_query("SELECT * FROM varer WHERE(id='$varekoeb[$i]')");
$vare = mysql_fetch.........


Håber du forstår den, og kan bruge den ;)

---------------------
Daniel Truelsen
Webmaster @ http://dtweb.lir.dk


okay tak
--------------------------------------------------
[THIS IS A SIGNATURE VIRUS! PLEASE COPY IT INTO YOUR OWN SIGNATURE(S)]
--------------------------------------------------
tjeck lige http://www.udvikleren.dk/groups/?gid=18 hvis du vil hjælpe med at lave et godt spil!



t