ciao a tutti,
sto cercando di venire a capo e concludere un carrello elettronico ma mi fermo qui...
1. scelgo i prodotti ma la sessione li registra in questo modo: se io metto nel carrello n 5 pezzi del prodotto PRIMO (con id 1), stampando la sessione vedrò: 1,1,1,1,1
quindi mi ripete l'id tante volte quante la quantità indicata
2. a me serve stampare in sessione la quantità (quindi, nel nostro esempio 5) e l'id del prodotto--> il risultato dovrebbe essere "q.tà 5 | id prodotto 1|" in modo da avere un riassunto prima di registrare l'ordine sul db
come posso fare?
=======
la funzione che carica il punto 1 è
Codice PHP:
function mostraCarrello()
{
global $db;
$carrello = $_SESSION['carrello'];
$somma = 0;
if ($carrello)
{
$prodotti = @explode(',',$carrello);
$acquisti = array();
foreach ($prodotti as $prodotto)
{
$acquisti[$prodotto] = (@isset($acquisti[$prodotto])) ? $acquisti[$prodotto] + 1 : 1;
}
$result[] = '<form action="carrello.php?action=aggiorna" method="post" id="cart">';
$result[] = '<table>';
foreach ($acquisti as $id=>$quantita)
{
$sql = 'SELECT * FROM prodotti WHERE id = '.$id;
$res = $db->query($sql);
$f = $res->fetch();
@extract($f);
$result[] = '<tr>';
$result[] = '<td>[url="carrello.php?action=cancella&id='.$id.'"]Cancella[/url]</td>';
$result[] = '<td>'.$nome.' by '.$descrizione.'</td>';
$result[] = '<td>€'.$prezzo.'</td>';
$result[] = '<td><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
$result[] = '<td>€'.($prezzo * $quantita).'</td>';
$result[] = '<td>contenuto '. $carrello .'</td>';
$subsomma += ($prezzo * $quantita)*20/100;
$result[] = '<td>- 20%--> €'.(($prezzo * $quantita)-$subsomma).'</td>';
$somma += $prezzo * $quantita;
$result[] = '</tr>';
}
$result[] = '</table>';
$result[] = 'Totale: [b]€'.($somma-$subsomma).'[/b]</br>';
$result[] = '<button type="submit">Aggiorna il carrello</button>';
$result[] = '</form>';
}else{
$result[] = 'Il carrello è vuoto.
';
}
return @join('',$result);
}