Cuestión : crear un arsenal de la sesión para el carro simple

No sé realmente si tengo la idea correcta aquí pero quiero almacenar opciones de los usuarios en una sesión. el

So, deja para decir allí es 3 artículos. Chascan encendido uno para descubrir más sobre él. Aquí pueden chascar encendido agregan al carro. Una vez que chascan encendido agregar el carro que debe agregar esa identificación de artículo a una sesión. ¿Pero por otra parte si agregan un diverso artículo se debe él almacenar en la misma sesión? En el momento el adición al acoplamiento del carro no está utilizando el poste sino consigue. Así pues, en la página del carro tengo el below pero pienso que tan pronto como chasquen encendido otros agregar al carro, el valor de la sesión cambiaré.

$_SESSION = $_GET [“DVDID”];
class= del

Respuesta : crear un arsenal de la sesión para el carro simple

Es más complicado que aparece así que he atado un cierto código que lo hará (véase abajo) pues una clase del PHP. Esto es solamente una cesta muy simple pero puede ser ampliada fácilmente.

Se utiliza como tan

$b = nuevo myBasket (“basketName”);    // usted puede funcionar varias cestas, apenas utiliza nombres únicos

$b->addItem ($productCode);  // agrega 1 artículo

$b->addItem ($productCode2, 10);   // agrega una cantidad de 10 para productCode2


Para exhibir la cesta

$items = $b->fetchAllItems ();
$qty = $b->fetchAllQtys ();

foreach ($items como $index=> $aProductCode) {

     código de producto del eco el “$aProductCode tiene {$qty [$index]} artículos
“;
}
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
sessName = $name. “_bskt”;
          $this->sessQty  = $name. “_qty”;

          $this->initialise ();
     }





     // ----- Métodos privados -------------------------------------------------


     Almacén de // el arsenal actual en una variable de la sesión
     //
     updateBasket privado de la función () {
          $_SESSION [$this->sessName] = serializan ($this->basket);
          $_SESSION [$this->sessQty]  = serializan ($this->qty);
     }



     // inicializa la cesta
     //
     la función privada se inicializa () {

          Cheque de // si la sesión está en curso y si recuperar tan la cesta existente
          //
          si (isset ($_SESSION [$this->sessName]) isset del && ($_SESSION [$this->sessQty])) {
               $this->basket = unserialize ($_SESSION [$this->sessName]);
               $this->qty    = unserialize ($_SESSION [$this->sessQty]);
          }
          {
               $this->basket = arsenal ();
               $this->qty    = arsenal ();
               $this->updateBasket ();
          }

     }



     // ----- Métodos públicos --------------------------------------------------


     // vacia la cesta hacia fuera
     //
     claro de la función () {

          unset ($_SESSION [$this->sessName]);
          unset ($_SESSION [$this->sessQty]);
          $this->initialise ();
     }



     // agrega un objeto al extremo de la lista
     //
     Parámetros de //: $item - un objeto que se almacenará
     //             $num - una cantidad que se almacenará, defectos a 1
     //
     addItem de la función ($item, $num=1) {
          // asegura la estancia de los índices en paso recuperando el más alto
          índice existente de // e incremento de él
          //
          $ctr = cuenta ($this->basket);

          si ($ctr > 0) {
               $lastKey = extremo (array_keys ($this->qty));
               $ctr = $lastKey + 1;
          }

          $this->basket [$ctr] = $item;
          $this->qty    [$ctr] = $num;

          $this->updateBasket ();
     }



     // quita un artículo de la lista - identificar por el número de la cesta.
     la NOTA de // QUE LA ELIMINACIÓN DE UN ARTÍCULO NO REAJUSTA LA CESTA NUMERA en los órdenes.
     //
     Parámetros de //: $basketNumber - el índice de la entrada del arsenal a quitar del arsenal
     //
     rmvItem de la función ($basketNumber) {

          si (cuenta ($this->basket) > 0) {

               Cheque de // 001 que un artículo existe antes de intentar su retiro
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    unset ($this->basket [$basketNumber]);
                    unset ($this->qty [$basketNumber]);
                    $this->updateBasket ();
               }
          }
     }



     Alcance de // un artículo
     //
     Parámetros de //: $basketNumber - el índice de la entrada del arsenal a recuperar del arsenal
     //
     fetchItem de la función ($basketNumber) {
          si (cuenta ($this->basket) > 0) {
               $this->basket de vuelta [$basketNumber];
          }
     }



     Alcance de // a la cantidad para un artículo
     //
     Parámetros de //: $basketNumber - el índice del qty a recuperar del arsenal
     //
     fetchItemQuantity de la función ($basketNumber) {
          si (cuenta ($this->qty) > 0) {
               $this->qty de vuelta [$basketNumber];
          }
     }


     Cambio de // un artículo dado en la lista
     //
     Parámetros de //: $basketNumber - el índice del objeto a la actualización
     //             $anItem - un objeto
     //
     chgItem de la función ($basketNumber, $anItem) {
          si (cuenta del && del >= 0 de $basketNumber ($this->basket) > 0) {
               Cheque de // 001 que un artículo existe antes de intentar su retiro
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    $this->basket [$basketNumber] = $anItem;
                    $this->updateBasket ();
               }
          }
     }



     Cambio de // a la cantidad dada de los artículos en la lista
     //
     Parámetros de //: $basketNumber - el índice del objeto a la actualización
     //             $qty - La nueva cantidad
     //
     función chgQty ($basketNumber, $qty) {
          si (cuenta del && del >= 0 de $basketNumber ($this->qty) > 0) {

               Cheque de // 001 que un artículo existe antes de intentar su retiro
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    $this->qty [$basketNumber] = $qty;
                    $this->updateBasket ();
               }
          }
     }



     // consigue una lista de todos los artículos en la cesta
     //
     fetchAllItems de la función () {
          $this->basket de vuelta;
     }



     // consigue una lista de todas las cantidades del artículo almacenadas en la cesta
     //
     fetchAllQtys de la función () {
          $this->qty de vuelta;
     }



     // vuelve la cuenta del número de artículos en la cesta
     //
     countBasket de la función () {
          array_sum de vuelta ($this->qty);
     }



} extremo de // del myBasket de la clase
Otras soluciones  
 
programming4us programming4us