Somma di molti campi del database

Monital

Utente Attivo
15 Apr 2009
778
2
18
E incredibile come io faccia difficoltàa cercare le cose sul web, mi pare strano che non ci sia niente al riguardo ma si parla sempre e solo di due o al massimo 4 campi

ma se io volessi fare la somma di tutti i campi del datasbe devo scriverli afforza uno x uno?

ad esempio

PHP:
SELECT SUM(Eta+soldi) where....
.

ma se ho 30 campi? devo scriverli uno epr uno? e se ne aggiungo un altro devo andare a ritoccare il codice?

non esiste modo di creare tipo un arraydei campi?

son due gironi che giro ma davero non ho trovato neinte manco sui manuali
 
Puoi risolvere in questo modo:
PHP:
$sql = 'SHOW COLUMNS FROM tabella';
$result = mysql_query($sql) or die(mysql_error());

$columns = array();

while($row = mysql_fetch_assoc($result))
	$columns[] = $row['Field'];

$sql_columns = implode('+', $columns);
A questo punto, se la tabella ha i campi campo1, campo2 e campo3, la variabile $sql_columns conterrà la stringa campo1+campo2+campo3, pronta per essere usata così:
PHP:
$sql = "SELECT SUM({$sql_columns}) ...";
 
ok perfetto funziona

ma se posso permettermi una domanda

io di questi tot campi in una tabella devo escludere il primo e l'ultimo campo

in un altra invece devo escludere il rpimo e gli ultimi due

per il primo ho risolto copiando l'array risultante e con unset

PHP:
$doppio = $columns;

unset($doppio[0]);

$nuovo= implode('+', $doppio);

ma l'ultimo o gli ultimi due campi non sono stato in grado, avevo eltto in una guida che si può estrarre l'ultimo valore dell'array

devo ritrovarla


cmq grazie era motlo importante sta cosa
 
ok perfetto funziona

ma se posso permettermi una domanda

io di questi tot campi in una tabella devo escludere il primo e l'ultimo campo

in un altra invece devo escludere il rpimo e gli ultimi due

per il primo ho risolto copiando l'array risultante e con unset

PHP:
$doppio = $columns;

unset($doppio[0]);

$nuovo= implode('+', $doppio);

ma l'ultimo o gli ultimi due campi non sono stato in grado, avevo eltto in una guida che si può estrarre l'ultimo valore dell'array

devo ritrovarla


cmq grazie era motlo importante sta cosa

risolto con array_pop()
 
se a qualcuno potesse servire, questa funzione estrae tutti i nomi dei campi presenti in una tabella:
PHP:
function mysql_field_array( $query ) {
   
        $field = mysql_num_fields( $query );
   
        for ( $i = 0; $i < $field; $i++ ) {
       
            $names[] = mysql_field_name( $query, $i );
       
        }
       
        return $names;
   
    }
fonte
 

Discussioni simili