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

    [php-Array] - Problema con estrazione dati da Array

    ciao a tutti,
    sto cercando di fare una cosa particolare.
    ho un carrello, quando faccio l ordine via email mi arrivano gli id degli articoli ordinati.
    andando dal db riesco a capire leggendo gli id, gli articoli corrispondenti ordinati!
    ma mi è un po scomodo, volevo prelevare i nomi oltre agli id.

    ce l ho fatta solo in parte, cioè riesco a recuperare il nome, ma solo dell ultimo articolo.
    i dati li prendo nella $f , vi faccio vedere lo script:
    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 align="center"><tr>
                            <td>Cancella</td>
                            <td>Denominazione</td>
                            <td>Marca</td>
                            <td>Prezzo</td>
                            <td>Quantità</td>
                            <td>per quantità</tr>'
    ;

        foreach (
    $acquisti as $id=>$quantita)
        {
          
    $sql 'SELECT * FROM articoli 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>'.$denominazione.'</td>';
          
    $result[] = '<td>'.$marca.'</td>';
          
    $result[] = '<td>' number_format($prezzo2","".") . ' €</td>';
          
    $result[] = '<td><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
          
    $result[] = '<td>' number_format(($prezzo $quantita), 2","".") . ' €</td></tr>';
          
    $somma += $prezzo $quantita;

          
    $_SESSION['somma'] = $somma;
          
    $_SESSION['f'] = $f;
        }
        
    $result[] = '<tr><td>Totale: €'number_format($somma2","".") . '</td>';
        
    $result[] = '<td> ggiorna <input name="aggiorna" type="image" src="img/refresh1.png"></td></tr></table>';
        
    $result[] = '</form>';
    _________________________________________________________________________
    //nella mail faccio cosi:
    $f $_SESSION['f'];  //mantengo cn la sessione la $f
    @extract($f,EXTR_PREFIX_SAME,"WDDX"); //estraggo
    $articoli $denominazione//do ad $articoli il nome e quindi $denominazione
    mail ("$mittente","$oggetto","$header","$articoli"//metto tutto nella mail 
    supponiamo che: id_2 = piatti e id_4 = pentole (esempio)
    come risultato ho: id_2 , id_4 - pentole
    come risultato vorrei: id_2 , id_4 - piatti , pentole

    come posso fare? qualcuno può aiutarmi? spero di essere stato chiaro!
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  2. #2
    non ti conviene avere in output :
    id_2 - piatti , id_4 - pentole ?
    comunque è un po' difficile aiutarti così perchè nel codice che hai inserito non vedo dove dichiari $denominazione

  3. #3
    mmm come puoi notare $f contiene la query select * from articoli where id= $id
    e quindi facendo la extract della $f
    ho $id , $quantita, $denominazione, ecc ecc...tutti i campi della tabella articoli
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  4. #4
    scusa eh, ma ad ogni ciclo for tu sovrascrivi il dato in session con l'ultima $f estratta:

    $_SESSION['f'] = $f;

    poi dopo è normale che quando ritorni a leggere $f dalla session hai solo l'ultimo valore del ciclo...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    ciao Santino, si si, lo so, insomma ho usato uno snippet di codice, ma l ho adattato io stesso alle mie esegenze, quindi si, so che è come dici tu, usando un ciclo la variabile viene sovrascritta e mi rimane solo l ultimo valore di $denominazione, esatto.
    è proprio questo il problema...dev riuscire a pescare tutti i $denominazione, devo capire dove sono contenuti, sto facendo delle prove, tu hai qualche idea? grazie dell interessamento e dell aiuto!
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  6. #6
    mmmm credo che le info che voglio, e quindi tutti i nomi delgi articoli del carrello li possa trovare in $prodotti o $acquisti, faccio delle prove, spero di nn sbagliarmi!
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  7. #7
    Originariamente inviato da maurorhcp89
    mmmm credo che le info che voglio, e quindi tutti i nomi delgi articoli del carrello li possa trovare in $prodotti o $acquisti, faccio delle prove, spero di nn sbagliarmi!

    altrimenti se proprio non riesci fai prima a rifare la query anche la seconda volta
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    mmm no, ho proprio bisogno di capire concettualmente in quale variabile viene salvato tutto il ciclo che implementa $denominazione per recuperare tutti i nomi, ancora niente, qualcuno di voi si è illuminato? nn riesco a venirne ancora a capo!
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

  9. #9
    codice:
    $_SESSION['f'] = $f;
    qui lo salvi, sovrascrivendo ogni volta l'ultimo articolo che stai utilizzando nel ciclo for... quindi che vuoi fare? se ti dico che col metodo che usi ogni volta vai a sovrascrivere e quindi in Session(f) ci sarà solo l'ultimo articolo, come modifichi il tuo script?

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    ce l ho fatta! visto che la $f si sovrascrive ho realizzato un array
    al quale assegno $denominazine di posto $i e che a fine ciclo incremento con $++
    quindi per ogni ciclo mi salvo nell array tutte le $denominazione che voglio!
    ce l ho fatta! ora nell array ho tutti gli articoli che l utente ha nel carrello cosi quando faccio l ordine via mail nn mando la $carrello. che contiene solo gli id, ma mando anche uest altro arrayche mi contiene tutti nomi degli articoli nel carrello.
    wow il cliente ne sara soddisfatto e io pure. ho finito alla grande il mio primo ecommerce
    e tutto funziona al meglio!
    www.gicchesto.com
    Servizi informatici ed elettronici a 360° per aziende e/o privati.

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.