Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Carrello spesa

  1. #1

    Carrello spesa

    Salve a tutti, premetto che ho già girato in largo e lungo il web alla ricerca di un esempio di carrello della spesa per siti di ecommerce ma non ho trovato ancora niente, quindi siete la mia unica speranza ! Leggendo alcuni post per il web ce gente che utilizza database per allocare l'acquisto di un utente, ma poi io pensavo ! Se un utente inserisce dei prodotti sul carrello quindi sul database e poi non finisce mai l'acquisto ma chiude il sito senza neanche disconnettersi , io sul db mi ritroverei decine e decine di tabelle con articoli messi li da clienti solo per il gusto di riempire il carrello. Non ce un modo che alla chiusura della sessione si distrugge anche la tabella ??

    Altrimenti ho visto farlo con sessioni ma non è che ho capito molto ne come inserire idarticolo e quantità nella sessione ne come riprenderli poi dalla sessione per concludere l'acquisto!! Se qualcuno ha qualche esempio magari lo posti ! :master:

  2. #2
    Ciao,
    è anche vero che puoi aggiungere un campo con la data in cui è stato aggiunto il prodotto nella tabella carrelli e di conseguenza cancelli i carrelli vecchi con semplici calcoli; comunque un esempio breve con le sessioni è:
    Codice PHP:
    //Aggiungere un prodotto al carrello
    session_start();
    $idprod = (int)$_GET['idprodotto']; //Forzi la variabile GET con (int) per evitare attacchi
    $query mysql_query("select * from prodotti where id='$idprod'");
    $p mysql_fetch_array($query);

    $_SESSION['cart'][$idprod]['nomeprodotto'] = $p['nome'];
    $_SESSION['cart'][$idprod]['qta'] += 1;
    $_SESSION['cart'][$idprod]['codice'] = $p['codice'];
    $_SESSION['cart'][$idprod]['prezzo'] = $p['prezzo']; 
    Per stampare a video tutti i prodotti del carrello:
    Codice PHP:

    //Stampare a video prodotti del carrello
    session_start();

    foreach(
    $_SESSION['cart'] as $chiave=> $valore) {

    echo 
    "id prodotto: ".$chiave."\n";
    echo 
    "nome prod: ".$valore['nomeprodotto']."\n";
    echo 
    "codice prod: ".$valore['codice']."\n";
    ....

    Così facendo eviti di occupare spazio nel db e se chiudono o scade la sessione, il carrello diventa vuoto ($_SESSION['cart'])

    Ovviamente quando è il momento del pagamento, ti conviene comunque fare delle query di controllo, in caso avessi cambiato dei dati(tipo il codice, o addirittura il prezzo), mentre l'utente aggiungeva i prodotti nel carrello.
    Infine,fai vedere il riepilogo.
    E poi dovresti stare attento facendo uso delle transazioni per evitare anomalie con le quantità disponibili...(c'è una pillola sul forum se nn erro)

    Spero sia stato chiaro.

    Un saluto

    Alberto
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  3. #3
    Ahhhh ecco, ora mi è tutto chiaro, io questo metodo l'avevo visto
    codice:
    $_SESSION['cart'][$idprod]['nomeprodotto'] = $p['nome'];
    $_SESSION['cart'][$idprod]['qta'] += 1;
    $_SESSION['cart'][$idprod]['codice'] = $p['codice'];
    $_SESSION['cart'][$idprod]['prezzo'] = $p['prezzo'];
    però era così
    codice:
    $_SESSION['cart'][]['nomeprodotto'] = $p['nome'];
    $_SESSION['cart'][]['qta'] += 1;
    $_SESSION['cart'][]['codice'] = $p['codice'];
    $_SESSION['cart'][]['prezzo'] = $p['prezzo'];
    e non riuscivo a capire come potevo poi distinguere i vari prodotti invece vedo che tu tra le quadre hai messo $idprod che sarebbe l'id del prodotto che il cliente ha messo sul carrello ! Una cosa in quantità vedo +=1 puoi spiegarmi quel + davanti all = cosa serve ?? PErchè io al posto del 1 avrei un $_POST['quantita'].

    Intato grazie mille cmq mi hai illuminato la mattina !

  4. #4
    $_SESSION['cart'][$idprod]['qta'] += 1; è la stessa cosa di
    $_SESSION['cart'][$idprod]['qta'] = $_SESSION['cart'][$idprod]['qta'] + 1;


    Figurati.

    Ciao

    Alberto
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.