Salve vorrei fare la media di alcuni valori che ricavo da una tabella di un db ...
...
Salve vorrei fare la media di alcuni valori che ricavo da una tabella di un db ...
...
Se il DB è MySQL puoi utilizzare la funzione AVG():
codice:SELECT AVG(colonna) FROM tabella;
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Grazie mille con le funzioni sql è fattibilissimo, ma se volessi farlo in php!!!!
in php
ti prelevi i dati con il select
fai un while
Codice PHP:
$query= mysql_query("SELECT campovalori FROM tabella");
while($dati=mysql_fetch_array($query)){
$valori[]= $dati['campovalori']
$t++;
}
$somma= array_sum($valori);
$media= $valori/$t;
echo $media;
Se hai una funzione che te lo fa ti consiglio di utilizzare quella che è sicuramente più performante. Se invece vuoi utilizzare PHP ti basta banalmente effettuare una select classica e scorrere il resultset sommando di volta in volta il valore ricavato dalla colonna della quale vuoi effettuare la media ed infine dividere tale risultato per il numero di record (media aritmetica).
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
sono d'accordo cn satifal..se ci sono funzioni adatte tanto vale usarle...altrimenti puoi fare come ti ho postato..non l'ho testato ma quello che ho scritto secondo logica è avere i dati prelevati dal db in un array, sommare i dati dell'array...nel frattempo $t è un contatore che ti conta i dati e poi fai la divisione avendo somma e totale dati
scusate sto impazzendo ho provato due soluzioni per avere la media :
soluzione 1:
//////conta record
$query = mysql_query("SELECT * FROM misure WHERE data = '$data' " );
$num=mysql_num_rows($query);
echo "Record totali nella tabella misure = ". $num. "per il giorno".$data;
?>
<?
#############################à
//query somma array su tabella misure
$sql = mysql_query("SELECT SUM Valore FROM misure WHERE data = '$data' " );
//while($misure = mysql_fetch_array($sql)){
$valore = $misure;
}
// la media
$media = $num/$valore;
echo 'MEDIA' .$media; // E qui fai vedere la media
soluzione 2
$mediagg = mysql_query ("SELECT AVG(Valore) FROM misure WHERE data = '$data'");
echo 'MEDIA giorno '.$mediagg ;
Tutte e due le soluzioni mi danno errore
la seconda mi restituisce questo : MEDIA giorno Resource id #5
perchè la query che fai restituisce un identificativo di risorsa non numero
ti consiglio di leggerti la guida di mysql
http://it.php.net/mysql_query
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
scusa egidio la mia soluzione postata sopra non va?