- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aiuto con ciclo foreach
-
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
-
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.
-
Perfetto!
Ti ringrazio!!Ciao!