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

    aiuto con ciclo foreach per estrarre dati

    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

    Codice PHP:
    while($riga_downloadmysql_fetch_array($esegui_downlaod)){
        
        
    $righe_tipo[$riga_download['tipologia']]= $riga_download;
           
    }
       
        foreach (
    $righe_tipo as $tipologia => $array_tipologia){
        
                
    echo 
    '<div>tipologia:'.$tipologia.'
    </div>'
    ;
        
        foreach (
    $array_tipologia as $array_testo => $tipologia ){

        
    $testo_download $array_tipologia['testo'];


        echo 
    '<div>
    '
    .$testo_download.'</div>';
        
        }
        

    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 sbagliando??

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

  2. #2
    Utente di HTML.it L'avatar di leno
    Registrato dal
    Sep 2007
    Messaggi
    23
    a occhio direi che devi modificare l'array e renderlo multidimensionale:

    Codice PHP:
    if(!isset($righe_tipo[$riga_download['tipologia']])){
         
    $righe_tipo[$riga_download['tipologia']]=array();


    $righe_tipo[$riga_download['tipologia']][]= $riga_download
    cioé ad ogni tipo corrisponde un nuovo array, che contiene tutti gli elementi di quel dato tipo

    il resto dovrebbe funzionare

  3. #3
    Ciao,
    non riesco a capire il tuo suggerimento..

  4. #4
    mettendolo così non funziona..
    Codice PHP:
    while($riga_downloadmysql_fetch_array($esegui_downlaod)){
       if(!isset(
    $righe_tipo[$riga_download['tipologia']])){
         
    $righe_tipo[$riga_download['tipologia']]=array();


    $righe_tipo[$riga_download['tipologia']][]= $riga_download;
           
    }
       
        foreach (
    $righe_tipo as $tipologia => $array_tipologia){
        
                
    echo 
    '<div>tipologia:'.$tipologia.'
    </div>'
    ;
        
        foreach (
    $array_tipologia as $array_testo => $tipologia ){

        
    $testo_download $array_tipologia['testo'];


        echo 
    '<div>
    '
    .$testo_download.'</div>';
        
        }
        


  5. #5
    Risolto!
    Avevi ragione, dovevo renderlo multidimensionale

    Codice PHP:
    while($riga_downloadmysql_fetch_array($esegui_downlaod)){
        
        
    $righe_tipo[$riga_download['tipologia']][]= $riga_download;
           
    }
       
        foreach (
    $righe_tipo as $tipologia => $array_tipologia){
        
                
    echo 
    '<div>tipologia:'.$tipologia.'
    </div>'
    ;
        
        foreach (
    $array_tipologia as $testo => $prodotto){

        
    $testo_download $prodotto['testo'];


        echo 
    '<div>
    '
    .$testo_download.'</div>';
        
        }
      
    // echo '<div>
    '.$testo_download.'</div>';


  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Salve.
    Approfitto del tema (foreach) per esporre un mio problema (conosco pochissimo php).
    Riesco ad estrarre dei record da mysql con un ciclo foreach e a stamparli a video.
    Vorrei inviare questi dati ad un'altra pagina ma non so come fare.
    Vorrei raccogliere i dati estratti in un form ma non ho idea di come fare, visto che i record sono più di uno, e quindi ho più di un id, più di un nome, ecc.
    Non mi sto piegando bene?
    Posto pezzi di codice:

    codice:
    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>Cancella</td>';
          $result[] = '<td>'.$nome.' by '.$marca.'</td>';
    Questo ciclo funziona perfettamente.
    Vorrei inviare i vari dati estratti ($id, $nome, $marca, ecc) in un'altra pagina, ma non so come fare.
    Qualcuno mi dà una mano?
    Grazie anticipatamente!

  7. #7
    Originariamente inviato da itoo
    Salve.
    Approfitto del tema (foreach) per esporre un mio problema (conosco pochissimo php).
    Non farlo. Questa discussione e' vecchia di un anno, quindi se hai un problema aprine una nuova.

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.