Come si crea un carrello della spesa?

Devo realizzare un carrello della spesa per un sito ma non so da dove cominciare prima, qualcuno saprebbe darmi qualche indicazione?

Grazie,

ciao.

inviato 9 anni fa
Nando
X 0 X

Non è difficile realizzarlo. Per prima cosa devi avere un sistema di log-in funzionante. E' conveniente salvere in sessione l'ID dell'utente che ha effettuato il login.

Sempre in sessione possono essere conservati gli ID dei prodotti che costituiscono il carrello dell'utente. In pratica devi creare una variabile in sessione ($_SESSION['carrello']) che conserverà tutti gli ID dei prodotti. Ad esempio per aggiungere un prodotto (id=123), di cui sono state comprate 3 unità (tre penne ad esempio):

$_SESSION['carrello'][] = array('prod_id'=>123,'quantita'=3);

ovviamente potrai memorizzare tante altre informazioni relative al prodotto selezionato, rendendo può complessa la struttura dell'array.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Questo lo script che ho realizzato:

session_start();

$_SESSION['carrello'][]['id'] = '102';
$_SESSION['carrello'][]['nome'] = 'penna';
$_SESSION['carrello'][]['prezzo'] = '2 euro';

foreach ($_SESSION['carrello'] as $key) {
   echo 'id: '.$key['id'].'<br>'
      .'nome: '.$key['nome'].'<br>'
      .'prezzo: '.$key['prezzo'].'<br>'
   ;
}

mentre questo è quello che mi stampa a video:

Notice: Undefined index: nome in c:\www\prove\carrello.php on line 11

Notice: Undefined index: prezzo in c:\www\prove\carrello.php on line 12

id: 102

nome:

prezzo:

Notice: Undefined index: id in c:\www\prove\carrello.php on line 10

Notice: Undefined index: prezzo in c:\www\prove\carrello.php on line 12

id:

nome: penna

prezzo:

Notice: Undefined index: id in c:\www\prove\carrello.php on line 10

Notice: Undefined index: nome in c:\www\prove\carrello.php on line 11

id:

nome:

prezzo: 2 euro

Dove sbaglio?

risposto 9 anni fa
Nando
X 0 X

L'errore sta nell'aggiunta di elementi all'array del carrello.

Infatti una cosa è scrivere:

1) $_SESSION['carrello'][] = array('prod_id'=>123,'quantita'=3);

un'altra è:

2) $_SESSION['carrello'][]['prod_id'] = 123; $_SESSION['carrello'][]['quantita'] = 3;

La differenza sta nell'uso di []. Infatti quando metti [] stai dicendo all'array di creare un nuovo elemento, specificato dopo l'uguale. Ogni volta che usi [] viene creato un nuovo elemento dell'array. Quindi se devi memorizzare diverse informazioni relative ad uno stesso acquisto devi aggiungere sono un elemento all'array $_SESSION['carrello'], contenente tutte le informazioni (1). Se invece inserisci le diverse informazioni come in (2) allora le avrai sparpagliate in tanti elementi nell'array del carrello.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda