- Home
- Categorie
- Coding e Sistemistica
- PHP
- Media aritmetica da array in while
-
Media aritmetica da array in while
Salve a tutti,
Ho una situazione di questo tipo :
[php]
<?php
$refer=mysql_query(" SELECT username, hits FROM users WHERE refer='$name'");
?>
<table width="200" border="0">
<?php while ($var_hits = mysql_fetch_array($refer, MYSQL_NUM)) { ?>
<tr>
<td><?php printf ($var_hits[0])?></td>
<td><?php printf ($var_hits[1])?></td>
</tr><?php } ?>
</table>
[/php]
In pratica ho bisogno di visualizzare una lista di utenti che hanno come "refer" un nome in particolare e visualizzarne username e numero di hits.
E fin qui questo codice funziona.
Adesso avrei bisogno di effettuare la media aritmetica dei valori delle hits ( questa variabile : $var_hits[1] ).
Come posso fare ??
Spero che qualcuno riesca ad aiutarmi
-
Ma hits sono numeri?
La media si fa sommando tutti i numeri e dividere per quanti sono...
-
Si le hits sono tutti numeri.
Lo so che si sommano e poi dividono ma non so come andarlo a fare in php in quel caso...
Ho provato con qualcosa del tipo :
SELECT AVG(hits) FROM users WHERE refer='$name'
Ma non va...
Soluzioni ?
-
Prova a fare un'altra query da lanciare subito dopo quella che hai già fatto in questo modo :
" SELECT SUM(IF(refer = '$name', 1, 0)) FROM users "
Dovresti ottenere il numero totale dei refer in modo da poterlo utilizzare per fare la media con il numero di hits che hai già ricavato.
-
[php]<?php
$refer=mysql_query(" SELECT username, hits FROM users WHERE refer='$name'");
$n_m = 0;
$numero_hits = 0;
?><table width="200" border="0">
<?php while($var_hits = mysql_fetch_assoc($refer)) { ?>
<tr>
<td><?=$var_hits['username']?></td>
<td><?=$var_hits['hits']?></td>
</tr><?php
$n_m++;
$numero_hits = $numero_hits+$var_hits['hits'];
}// E qui calcoliamo la media
$media = $numero_hits/$n_m;echo $media; // E qui fai vedere la media
?>
</table> [/php]
-
O più semplicemente
[php]
<?php$refer=mysql_query(" SELECT username, hits FROM users WHERE refer='$name'");
$numero_hits = 0;
?><table width="200" border="0">
<?php while($var_hits = mysql_fetch_assoc($refer)) { ?>
<tr>
<td><?=$var_hits['username']?></td>
<td><?=$var_hits['hits']?></td>
</tr><?php
$numero_hits+= $var_hits['hits'];
}// E qui calcoliamo la media
$media = $numero_hits/mysql_num_rows($refer);echo $media; // E qui fai vedere la media
?>
</table>
[/php]
-
Si infatti è più semplice e fa la stessa cosa