Foros del Web » Programando para Internet » PHP »

Hacer media y procentaje AYUDA PLZ

Estas en el tema de Hacer media y procentaje AYUDA PLZ en el foro de PHP en Foros del Web. Hola tengo este codigo: Código PHP: <?  include( 'config4.php' ); $query  =  mysql_query ( "SELECT * from topclan" ); while( $clan = mysql_fetch_array ( $query ))  {  $Rzone  ...
  #1 (permalink)  
Antiguo 05/02/2005, 08:24
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 12 años, 10 meses
Puntos: 0
Hacer media y procentaje AYUDA PLZ

Hola tengo este codigo:

Código PHP:
<? 
include('config4.php');
$query mysql_query("SELECT * from topclan");
while(
$clan=mysql_fetch_array($query)) 


$Rzone $clan["Rzone"] / 12 100;
$Media $clan["Rzone"] + $clan["Pweb"] + $clan["Amiembros"] / 100;

echo 
'<br>Web: ' $clan["clan"] . ' </br>';
echo 
'<br>Web: ' $clan["web"] . ' </br>'
echo 
'<br>Azone: ' $clan["Azone"] . ' </br>'
echo 
'<br>Aligas: ' $clan["Aligas"] . '</br>'
echo 
'<br>Aweb: ' $clan["Aweb"] . '</br>'
echo 
'<br>Amiembros: ' $clan["Amiembros"] . '</br>'
echo 
'<br>Pweb: ' $clan["Pweb"] . '</br>'
echo 
'<br>Rzone: ' $Rzone '%</br>'
echo 
'<br>Media: ' $Media '%</br>';


?>
Quiero que me aga la media con $Media = $clan["Rzone"] + $clan["Pweb"] + $clan["Amiembros"] / 3 * 100; pero no se si esta bien es que los datos no me cuadran depues... como puedo hacer la media y mostrarlo en porcentaje%?
  #2 (permalink)  
Antiguo 05/02/2005, 08:31
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
La media sería:

$media= (elemento1 + elemento2... + elementon ) / nº de elementos;

Y el porcentaje de cada elemento respecto al total sería:

$porcentaje=(elemento1 / sumaelementos) * 100

puedes usar la función round() para redondear el resultado en caso de que ofrezca demasiados decimales

$porcentaje=round($porcentaje,nº_decimales);

y así para añadirle el '%':

$porcentaje.=" %";

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #3 (permalink)  
Antiguo 05/02/2005, 08:42
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 12 años, 10 meses
Puntos: 0
Podria poner

$Total = $clan["Rzone"] + $clan["Pweb"] + $clan["Amiembros"];
$Media = ($clan["Rzone"] + $clan["Pweb"] + $clan["Amiembros"] ) / 3;
$Porciento = ($clan["Rzone"] / $total ) * 100


??????????????????? eso se podria?????????????????

Y para pasar la media a porciento?
  #4 (permalink)  
Antiguo 05/02/2005, 08:46
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Si, exactamente.

La media es la media, es decir, la suma de los elementos entre el número de elementos, no es un porcentaje, es un entero.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #5 (permalink)  
Antiguo 05/02/2005, 08:51
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 12 años, 10 meses
Puntos: 0
Warning: Division by zero in /home/webcindario/team-eg/topclan.php on line 8

Me dice eso en la linea
$Porciento = ($clan["Rzone"] / $total ) * 100;
  #6 (permalink)  
Antiguo 05/02/2005, 08:54
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
cuando tratas de dividir un numero entre 0 dá un error (lógico: no se puede dividir nada entre 0), comprueba el valor de $total.

Si $total puede ser 0 entonces por una condición, así:

//Si la suma de los elementos es 0 el porcentage del elemento es 0

if ($total!=0){
$Porciento = ($clan["Rzone"] / $total ) * 100;
}
else{
$porciento=0;
}

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #7 (permalink)  
Antiguo 05/02/2005, 08:56
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 12 años, 10 meses
Puntos: 0
pero es que la suma del $total no da 0 :S da 20... no entiendo qe pasa..
por que me sale el error?
  #8 (permalink)  
Antiguo 05/02/2005, 09:05
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Siempre dá 20?

Comprueba lo que contienen las variables, es decir, si son números y no letras (las letras no se pueden dividir...) :

$numero="6";

no es igual que

$numero=6;

Aparte de eso el procedimiento está bien...

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #9 (permalink)  
Antiguo 05/02/2005, 09:14
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 12 años, 10 meses
Puntos: 0
viene de la BBDD con un while...y si es numero entero.. puede ser que en la BBDD lo añado como TEXT?
  #10 (permalink)  
Antiguo 05/02/2005, 09:17
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 12 años, 10 meses
Puntos: 0
No no puede ser por eso por que si pongo
$Total = $clan["Rzone"] + $clan["Pweb"] + $clan["Amiembros"];

al poner $Total sale 20... no se por que no me lo pilla al dividir :S
  #11 (permalink)  
Antiguo 05/02/2005, 09:30
 
Fecha de Ingreso: febrero-2005
Mensajes: 143
Antigüedad: 12 años, 10 meses
Puntos: 0
Vale ya me va con lo de IF .... ELSE no me iba e puesto solo
$PorcientoRzone = ($clan["Rzone"] / $Total ) * 100;

y ya va :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:37.