• User Attivo

    Aiuto con ciclo foreach

    Ciao a tutti!
    ho una tabella in mysql con i miei prodotti.
    ogni prodotto ha un link e ha tipologia.
    Vorrei estrarre le tipologie e per ogni tipologia fare stampare il prodotto con le sue caratteristiche.

    la tabella è divisa in : id - testo - link - tipologia

    [php]while($riga_download= mysql_fetch_array($esegui_downlaod)){

    $righe_tipo[$riga_download['tipologia']]= $riga_download;
    
    //print_r ($riga_download);
    

    }

    foreach ($righe_tipo as $tipologia => $array_tipologia){
    

    echo '<div>tipologia:'.$tipologia.'<br></div>';

    foreach ($array_tipologia as $array_testo => $tipologia ){
        
        
            //$link_download = $array_testo['link'];
    $testo_download = $array_tipologia['testo'];
    //$id_download = $prodotto['id'];
    
    echo '<div><br>'.$testo_download.'</div>';
    
    }
    

    }[/php]così facendo mi stampa le mie tipologie e sotto ogni tipologia mi ripete un solo elemento per tipologia tante volte quanti sono i dati inseriti nella tabella! Cosa sto sbagliano?? grazie!

    Io vorrei stampare
    Tipo 1: prodotto 1 - prodotto 2
    Tipo 2: prodotto 1 - prodotto 2
    Tipo 3: prodotto 1 - prodotto 2 - prodotto 3


  • User Attivo

    Il problema è in questa istruzione:
    [PHP]$righe_tipo[$riga_download['tipologia']]= $riga_download;[/PHP]
    così facendo ogni volta vai a scrivere la tipologia nella stessa posizione dell'array, quindi resta in memoria solo l'ultima tipologia.
    Dovresti fare in questo modo:
    [PHP]$righe_tipo[$riga_download['tipologia']][]= $riga_download;[/PHP]
    Così facendo non sovrascrivi la tipologia, ma viene accodata.

    In teoria così facendo dovrebbero già funzionare anche i 2 foreach che utilizzi per la stampa.


  • User Attivo

    Perfetto!
    Ti ringrazio!!

    Ciao!