Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    aggiungere un array ad una funzione

    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;
        }
        
    $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>&euro;'.$prezzo.'</td>';
          
    $result[] = '<td><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
          
    $result[] = '<td>&euro;'.($prezzo $quantita).'</td>';
          
    $result[] = '<td>contenuto '$carrello .'</td>';
          
    $subsomma += ($prezzo $quantita)*20/100;
          
    $result[] = '<td>- 20%--> &euro;'.(($prezzo $quantita)-$subsomma).'</td>';
          
    $somma += $prezzo $quantita;
          
    $result[] = '</tr>';
        }

        
    $result[] = '</table>';
        
    $result[] = 'Totale: [b]&euro;'.($somma-$subsomma).'[/b]</br>';
        
    $result[] = '<button type="submit">Aggiorna il carrello</button>';
        
    $result[] = '</form>';
      }else{
        
    $result[] = 'Il carrello è vuoto.
    '
    ;
      }
      return @
    join('',$result);

    ---------------------------
    danielix05

  2. #2
    Perchè hai strutturato il carrello in questo modo?

    Non sarebbe stato più semplice inserire i vari prodotti come array multidimensionale?

    Codice PHP:
    <?php 
    $_SESSION
    ['carrello'] = array();
    $_SESSION['carrello'][] = array('id' => 123'qta' => 5);
    $_SESSION['carrello'][] = array('id' => 456'qta' => 3);
    $_SESSION['carrello'][] = array('id' => 789'qta' => 2);
    print_r($_SESSION['carrello']);
    ?>

  3. #3

    altro aggiornamento

    ciao e grazie della tua risposta

    attualmente, nel file funzioni.php ho apportato questa modifica

    Codice PHP:
    $result[] = '<td>qt&agrave; '$quantita .' | id '$id .'</td>'
    e riesco ad ottenere tante righe quante sono i prodotti con questo risultato


    Controlla il numero dei prodotti
    Cancella | Prodotto 1 | DESCRIZIONE 1 | sconto €20 |totale | €200 qtà 10 | id 1 - 20%--> €160
    Cancella | Prodotto 2 | DESCRIZIONE 2 | sconto €20 |totale | €200 qtà 5 | id 2 - 20%--> €160
    Cancella | Prodotto 3 | DESCRIZIONE 3 | sconto €20 |totale | €200 qtà 3 | id 3 - 20%--> €160

    Totale: €560
    MAIL CARRELLO - Aggiorna il carrello
    ovviamente non riesco a portare avanti tutti questi valori nel file successivo di riassunto dove dovrebbe essere popolato un db

    come faccio a venirne fuori?

    spero tu mi possa dare qualche dritta da seguire, grazie
    ---------------------------
    danielix05

  4. #4
    possibile nessuno di voi mi possa dare una mano?
    ---------------------------
    danielix05

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.