Visualizzazione dei risultati da 1 a 6 su 6

Discussione: elenco campi tabella

  1. #1

    elenco campi tabella

    Ciao,

    Alcuni record della mia tabella hanno dei campi volutamene vuoti. Vorrei, una volta eseguita la query, associare al nome del campo il valore delo stesso, solo se il campo non è vuoto.

    Sono riuscito con un ciclo a controllare il valore di ogni singolo campo di ogni singolo record trovato, ma non resco ad associare a questo valore, il nome del rispettivo campo.
    Esiste una funzione che restituisce in un array l'elenco dei nomi dei campi di una tabella?

    ho trovato questo

    $mio_array = mysql_fetch_assoc($risulato_query);
    Ma purtroppo limita a un solo record il risultato della ricerca e questo non va bene.

    Chiedo aiuto...
    ::: Crepes Designer ::: http://www.mauriziobrevi.com

  2. #2
    Con un ciclo while esplori tutte le tuple...

    while($mio_array = mysql_fetch_assoc($risultato_query)) {

    echo
    }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3

    grazie....

    ....il problema della restituzione di un singolo record però rimane, ecco il codice della query che cerca i record presenti:

    $sql="SELECT * FROM $cat";
    $categoria=mysql_query($sql,$conn);

    while($riga=mysql_fetch_array($categoria)){
    $Inox=$riga["Inox"];
    $Antracite=$riga["Antracite"];
    $Nero=$riga["Nero"];
    $Bianco=$riga["Bianco"];

    $colori=array("$Inox","$Antracite","$Nero","$Bianc o");
    $i=0;

    while($riga2 = mysql_fetch_assoc($categoria)) {
    echo $riga2[$i];
    $i=$i+1;
    }
    }
    l'array $colori si riempirà con i valori dei campi di ogni redord trpvato e un if in un ciclo, controllerà quali di questi sono vuoti e quali contengono un valore, fin qui tutt'ok.

    però normalmente la query restituisce tutti i record della tabella, mentre impiegando il ciclo per il mysql_fetch_assoc me ne restituisce solo uno, il primo.
    ::: Crepes Designer ::: http://www.mauriziobrevi.com

  4. #4
    Ma da che cappello esce la var $riga2.

    Poi perche' un while annidato in altro while?

    usa code invece di quote, e metti degli spazi per evitare il ritorno a capo della stringa in modo improprio...
    codice:
    $sql="SELECT * FROM $cat";                                  
    $categoria = mysql_query($sql,$conn);                         
                                                                
    while($riga = mysql_fetch_array($categoria)){               
    $Inox = $riga["Inox"];                                      
    $Antracite = $riga["Antracite"];                            
    $Nero = $riga["Nero"];                                      
    $Bianco = $riga["Bianco"];                                  
                                                                
    $colori = array("$Inox", "$Antracite", "$Nero", "$Bianco"); 
                                                                
    $i=0;                                                       
    
    // da dove  esce &riga2                                         
    while($riga2 = mysql_fetch_assoc($categoria)) {             
                                                                
    echo $riga2[$i];                                            
                                                                
    $i=$i+1;                                                    
    }                                                           
    }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    $riga2 è solo un nome per non confonderla con $riga che avveo già usato, niente di particolare, perché? da qualche problema?



    non va bene un while dentro un'altro? non sono un drago, si capisce, pensavo potesse funzionare lo stesso ma non ci riesco
    ::: Crepes Designer ::: http://www.mauriziobrevi.com

  6. #6
    [supersaibal]Originariamente inviato da emerson74
    $riga2 è solo un nome per non confonderla con $riga che avveo già usato, niente di particolare, perché? da qualche problema?



    non va bene un while dentro un'altro? non sono un drago, si capisce, pensavo potesse funzionare lo stesso ma non ci riesco [/supersaibal]
    Non va bene un while annidato per l'estrazione delle tuple, perche' quello interno quando riceve la palla continua fino a che non riceve false. A questo punto passa la palla al primo che trova il false pure lui e finisce il ciclo. quindi il primo vedra' solo una tupla.

    mysql_fetch_array estrae due volte i valori. una con un indice associativo, e un'altra lo stesso dato con indice numerico. Se vuoi scorrere l'array che crei nel primo while usa foreach().

    Esattamente che vuoi fare non l'ho capito. Prova il seguente e adattalo al tuo bisogno. Intanto potrai vedere scorrere tutti i record.
    codice:
    while($riga = mysql_fetch_assoc($categoria)){               
    
    $Inox = $riga["Inox"];                                      
    $Antracite = $riga["Antracite"];                            
    $Nero = $riga["Nero"];                                      
    $Bianco = $riga["Bianco"];                                  
                                                                
    $colori = array("$Inox", "$Antracite", "$Nero", "$Bianco"); 
                                                                
         foreach($colori as $key => $value) {                        
            echo "Chiave  $key => Valore $value
    ";                 
         }                                                               }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.