Foros del Web » Programando para Internet » PHP »

Porcentaje de cada dato encontrado en mi tabla

Estas en el tema de Porcentaje de cada dato encontrado en mi tabla en el foro de PHP en Foros del Web. Hola a todos tengo las siguientes consultas Código PHP: /*Total medios*/ mysql_select_db ( $database_connection ,  $connection ); $query_totalmedios  =  "SELECT count(*) as totalm FROM medios" ; $totalmedios  =  mysql_query ( $query_totalmedios ...
  #1 (permalink)  
Antiguo 11/07/2012, 19:25
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Porcentaje de cada dato encontrado en mi tabla

Hola a todos tengo las siguientes consultas
Código PHP:
/*Total medios*/

mysql_select_db($database_connection$connection);

$query_totalmedios "SELECT count(*) as totalm FROM medios";
$totalmedios mysql_query($query_totalmedios$connection) or die(mysql_error());
$totalmmysql_result($totalmedios,0,"totalm");

 
/*Total Facebook*/
 
 
mysql_select_db($database_connection$connection);

$query_totalmediosf "SELECT count(*) as totalmf FROM medios Where medio='Facebook'";
$totalmediosf mysql_query($query_totalmediosf$connection) or die(mysql_error());
$totalmfmysql_result($totalmediosf,0,"totalmf");

 
/* 
La primera me arroja el total de registros

la segunda las que contiene facebook


Código PHP:
<?php echo $totalm?>
   
     <?php echo $totalmf?>
Ahora bien en base a esos resultados...

Como podria asignarle un porcentaje a cada Medio (Facebook por ejemplo)
supongamos
mi $totalm=10(total de registros en mi tabla medios)
mi $totalmf=5(total medio Facebook)

Ahora bien 10=100%
con una regla de 3 tengo que
10=100%
5=x

(5*100)/10=50% (Medio Facebook)

Esto no se como tendria que sacarlo en codigo php (ademas ¿Tendría que hacer una operacion por cada medio (facebook, twitter, periodico, etc)?

Alguien me podría ayudar por fis
  #2 (permalink)  
Antiguo 11/07/2012, 19:59
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Mi tabla tiene
id
medio
  #3 (permalink)  
Antiguo 12/07/2012, 19:19
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Alguna idea??? tengo un formulario de medios para indicar el tippico ¿como nos conocio?

se alojan en la tabla medios
campos: id , medio


bien me gustaria saber como podria sacar el porcentaje de cada medio
ejemplo
id medio
1 internet
2 internet
3 periodico
4 tv


4=100%
internet =50%
periodico=25%
tv=35%
  #4 (permalink)  
Antiguo 12/07/2012, 20:36
sjj
 
Fecha de Ingreso: octubre-2008
Mensajes: 213
Antigüedad: 11 años, 1 mes
Puntos: 12
Respuesta: Porcentaje de cada dato encontrado en mi tabla

A ver si esto te funciona para la consulta inicial que realizaste:

Código PHP:
$totalm=10// total de registros en mi tabla medios
$totalmf=5//total medio Facebook
$porcfacebook = ($totalmf*100)/$totalm;/*en una variable multiplicamos 
a los que tienen Facebook por 100 y lo dividimos por los que tienen medios, 
teniendo en cuenta que los que los datos se actualizarán.*/
echo "El porcentaje de gente con Facebook es ".$porcfacebook;/*mostramos el
 porcentaje.*/ 
  #5 (permalink)  
Antiguo 13/07/2012, 13:36
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Gracias por tu respuesta...
solo que mis datos no van a ser fijos tengo q sacarlos de mi Bd... ahora bien
tengo que hacer eso por cada medio supangamos q tengo 25

no existe una manera para que englobe a todos???
gracias
  #6 (permalink)  
Antiguo 13/07/2012, 14:04
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Lo puse asi paa cacular mediante variables


Código PHP:
  <?php

$porcfacebook 
= ($totalmf*100)/$totalm;/*en una variable multiplicamos  
a los que tienen Facebook por 100 y lo dividimos por los que tienen medios,  
teniendo en cuenta que los que los datos se actualizarán.*/ 
echo "El porcentaje de gente con Facebook es ".$porcfacebook;/*mostramos el 
 porcentaje.*/  
 
?>

Pero tengo que hacer la consulta para que medio????
o existe otra manera mas sencilla???

Bien en caso de que no tenga ningun registro en mi tabla medios
me envia este error Division by zero in C
ya que no se puede dividir entre 0
como puedo solucionarlo????
  #7 (permalink)  
Antiguo 13/07/2012, 14:27
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 11 años, 9 meses
Puntos: 31
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Buenas tardes,

tal vez podrias hacer todo en una consulta con group by, algo asi:
Código MySQL:
Ver original
  1. SELECT medio as NombreMedio, count( medio ) AS TotalPorMedio
  2. FROM medios
  3. medio
  4. )

De esta forma te daria un resultado como:
NombreMedio TotalPorMedio
diario 389
facebook 1056
twitter 798

Entonces podrias ir recorriendo el array y calculando los porcentajes:
Código PHP:
foreach($rsTotalPorMedios as $indice=>$fila){
echo 
'El medio '$rsTotalPorMedios['NombreMedio']. ' tiene '.($rsTotalPorMedios['TotalPorMedio']*100)/$totalm.'<br>';


El codigo puede tener errores porque no esta probado
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #8 (permalink)  
Antiguo 13/07/2012, 15:05
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Gracias por tu respuesta me guiaré con lo que me proporcionas
  #9 (permalink)  
Antiguo 13/07/2012, 15:58
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Código PHP:
$listado_medios=array(
0=>"Facebook",
1=>"Anuncios Espectaculares",
2=>"Periodico"
);

$encuesta=array($listado_medios);
$votos_total=0;
foreach(
$encuesta as $KEY => $medio)

    
$query_totalmedios "SELECT count(*) as totalm FROM medios";
$totalmedios mysql_query($query_totalmedios$connection) or die(mysql_error());
$totalmmysql_result($totalmedios,0,"totalm");


    
$votos_x_opcion=$totalm;
    
$votos_total+=$votos_x_opcion;
    
$estimar_porcentaje= @round($votos_x_opcion*100/$total_votos,1);    
    

LO hice asi pero no logro que me salga me da 0
  #10 (permalink)  
Antiguo 13/07/2012, 16:13
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Código PHP:
mysql_select_db($database_connection$connection);

$query_total "SELECT medio as NombreMedio, count(medio) as TotalPromedio From medios Group by medio";
$totalmedios1 mysql_query($query_total$connection) or die(mysql_error());
$totalm1mysql_result($totalmedios1,0,"NombreMedio");



$total_votos=$total1
Creo que mi problema esta aca ya que no me arroja ningun numero
sino
Facebook que es mi ultimo registro
  #11 (permalink)  
Antiguo 13/07/2012, 22:02
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 11 años, 9 meses
Puntos: 31
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Primero que nada, disculpa por el error; donde te dije que recorrieras con un for
(cosa imposible para un objeto resultante de una consulta Mysql).

Bueno este código debería hacer lo que necesitas.
Código PHP:
<?php

$connection 
mysqli_connect("localhost""root""""test"); //conexion de la BD
/* verificar la conexión */
if (mysqli_connect_errno()) {
    
printf("Conexión fallida: %s\n"mysqli_connect_error());
    exit();
}

$query_total "SELECT medio as NombreMedio, count(medio) as TotalMedio From medios GROUP BY medio "
$totalmedios mysqli_query($connection$query_total); //Guardo en el objeto $totalmedios el resultado de la consulta

$totalm=0//declaro variable. Esta variable tendrá la suma total de todos los medios 
if ($totalmedios){ // si la consulta devolvio resultados
    
while ($row mysqli_fetch_assoc($totalmedios)) {$totalm += $row["TotalMedio"];} // primero recorro y sumo todo parasaber el total de todo
    
mysqli_data_seek($totalmedios0); //Reseteo el objeto para volverlo a recorrer
    
while ($row mysqli_fetch_assoc($totalmedios)) { //Ahora recorro para saber uno por uno, cual es total de cada medio
        
$porcentaje = ($row["TotalMedio"]*100)/$totalm//Calculo el porcentaje de cada medio
        
$redondeo round($porcentaje 100) / 100;//redondeo el numero en 2 cifras
        
echo 'El porcentaje de gente con '.$row["NombreMedio"].'es '.$redondeo.'%<br>'//Muestro el promedio
    
}
    
mysqli_free_result($totalmedios); //libero el objeto
}

?>
Veras que todas las funciones para trabajar con BD que empiezan con mysql_ las cambie por mysqli_
Porque PHP dice que ya no es aconsejable utilizar las anteriores (al menos eso dice la ayuda de PHP)

Saludos!
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #12 (permalink)  
Antiguo 16/07/2012, 13:45
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Cita:
Iniciado por Javier01 Ver Mensaje
Primero que nada, disculpa por el error; donde te dije que recorrieras con un for
(cosa imposible para un objeto resultante de una consulta Mysql).

Bueno este código debería hacer lo que necesitas.
Código PHP:
<?php

$connection 
mysqli_connect("localhost""root""""test"); //conexion de la BD
/* verificar la conexión */
if (mysqli_connect_errno()) {
    
printf("Conexión fallida: %s\n"mysqli_connect_error());
    exit();
}

$query_total "SELECT medio as NombreMedio, count(medio) as TotalMedio From medios GROUP BY medio "
$totalmedios mysqli_query($connection$query_total); //Guardo en el objeto $totalmedios el resultado de la consulta

$totalm=0//declaro variable. Esta variable tendrá la suma total de todos los medios 
if ($totalmedios){ // si la consulta devolvio resultados
    
while ($row mysqli_fetch_assoc($totalmedios)) {$totalm += $row["TotalMedio"];} // primero recorro y sumo todo parasaber el total de todo
    
mysqli_data_seek($totalmedios0); //Reseteo el objeto para volverlo a recorrer
    
while ($row mysqli_fetch_assoc($totalmedios)) { //Ahora recorro para saber uno por uno, cual es total de cada medio
        
$porcentaje = ($row["TotalMedio"]*100)/$totalm//Calculo el porcentaje de cada medio
        
$redondeo round($porcentaje 100) / 100;//redondeo el numero en 2 cifras
        
echo 'El porcentaje de gente con '.$row["NombreMedio"].'es '.$redondeo.'%<br>'//Muestro el promedio
    
}
    
mysqli_free_result($totalmedios); //libero el objeto
}

?>
Veras que todas las funciones para trabajar con BD que empiezan con mysql_ las cambie por mysqli_
Porque PHP dice que ya no es aconsejable utilizar las anteriores (al menos eso dice la ayuda de PHP)

Saludos!


Gracias por responder, no pude sacarlo con mysqli... solo lo deje asi

mysql y funciono perfecto GRACIAS MIL
  #13 (permalink)  
Antiguo 16/07/2012, 17:27
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Funciona bien... pero si no tengo ningun registro me arroja el siguiente error
Warning: mysql_data_seek() [function.mysql-data-seek]: Offset 0 is invalid for MySQL result index 8 (or the query data is unbuffered)

Que es aqui mysql_data_seek($totalmedios1, 0); //Reseteo el objeto para volverlo a recorrer


supongo que porque no se puede dividir entre cero, como podria evitarlo

Código PHP:
<?php 
     mysql_select_db
($database_connection$connection);

$query_total "SELECT medio as NombreMedio, count(medio) as TotalMedio From mediosc GROUP BY medio ";  
$totalmedios1 mysql_query($query_total$connection) or die(mysql_error());

     
$totalm=0//declaro variable. Esta variable tendrá la suma total de todos los medios  



if ($totalmedios1){ // si la consulta devolvio resultados 
    
while ($row mysql_fetch_assoc($totalmedios1)) {$totalm += $row["TotalMedio"];} // primero recorro y sumo todo parasaber el total de todo 
 
mysql_data_seek($totalmedios10); //Reseteo el objeto para volverlo a recorrer 
    
while ($row mysql_fetch_assoc($totalmedios1)) { //Ahora recorro para saber uno por uno, cual es total de cada medio 
        
$porcentaje = ($row["TotalMedio"]*100)/$totalm//Calculo el porcentaje de cada medio 
        
$redondeo round($porcentaje 100) / 100;//redondeo el numero en 2 cifras 
       
echo 'El porcentaje de gente con '.$row["NombreMedio"]." ".'es '.$redondeo.'%<br>'//Muestro el promedio */
    

  
mysql_free_result($totalmedios1); //libero el objeto */

     
     
?>
  #14 (permalink)  
Antiguo 16/07/2012, 22:30
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 7 años, 7 meses
Puntos: 34
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Tomá, mirá como se simplifica la vida

Código SQL:
Ver original
  1. SELECT
  2. (SELECT COUNT(*) FROM medios WHERE medio LIKE 'face%')/COUNT(*) AS 'porcentaje facebook',
  3. (SELECT COUNT(*) FROM medios WHERE medio LIKE 'twi%')/COUNT(*) AS 'porcentaje twitter'
  4. FROM medios;

resultado:

Cita:
mysql> select
-> (select count(*) from medios where medio like 'face%')/count(*) as 'porcentaje facebook',
-> (select count(*) from medios where medio like 'twi%')/count(*) as 'porcentaje twitter'
-> from medios;
+---------------------+--------------------+
| porcentaje facebook | porcentaje twitter |
+---------------------+--------------------+
| 0.7500 | 0.2500 |
+---------------------+--------------------+
1 row in set (0.00 sec)
si queres podes multiplicarlos *100
  #15 (permalink)  
Antiguo 17/07/2012, 08:06
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 477
Antigüedad: 7 años, 7 meses
Puntos: 97
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Hola Briss.
Te propongo un código fácil de entender y que te sirve para cualquier número de medios. Y fíjate con un par de consultas, lo tienes todo.

Código PHP:

$result 
mysql_query("SELECT count(medio) as total FROM medios"$connection);
$row mysql_fetch_assoc($result); 
$total_reg $row["total"];
$sql "SELECT medio as nombremedio, round(100*count(medio)/$total_reg,2) as porcentaje From medios GROUP BY medio";  
$array mysql_query($sql,$connection);
while (
$row mysql_fetch_assoc($array)) {  
    echo 
"medio :".$row["nombremedio"]."=".$row["porcentaje"]."%<br>";

código no testeado!!

Saludos.

Última edición por oscartt67; 17/07/2012 a las 08:18
  #16 (permalink)  
Antiguo 17/07/2012, 17:32
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Gracias de hecho funciona solo que si no tengo ningun registro me arroja un error porque estaria dividiendo entre 0

como resolveria esto???
gracias
  #17 (permalink)  
Antiguo 17/07/2012, 19:23
sjj
 
Fecha de Ingreso: octubre-2008
Mensajes: 213
Antigüedad: 11 años, 1 mes
Puntos: 12
Respuesta: Porcentaje de cada dato encontrado en mi tabla

¿Y no sería suficiente con agregar un if para esos casos?

Código PHP:
if ($totalm==0)
{
$redondeo=0;
}
else
{
$porcentaje = ($row["TotalMedio"]*100)/$totalm
$redondeo round($porcentaje 100) / 100;

  #18 (permalink)  
Antiguo 18/07/2012, 12:35
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Cita:
Iniciado por sjj Ver Mensaje
¿Y no sería suficiente con agregar un if para esos casos?

Código PHP:
if ($totalm==0)
{
$redondeo=0;
}
else
{
$porcentaje = ($row["TotalMedio"]*100)/$totalm
$redondeo round($porcentaje 100) / 100;

Hola Grcias por responder...
Sé que es con un if, pero no estoy muy familiarizada con la setencia... asi que no sé donde tendría que colocarla

Código PHP:
<?php 
     mysql_select_db
($database_connection$connection);

$query_total "SELECT medio as NombreMedio, count(medio) as TotalMedio From mediosc GROUP BY medio ";  
$totalmedios mysql_query($query_total$connection) or die(mysql_error());

     
$totalm=0//declaro variable. Esta variable tendrá la suma total de todos los medios  



if ($totalmedios){ // si la consulta devolvio resultados 
    
while ($row mysql_fetch_assoc($totalmedios)) {$totalm += $row["TotalMedio"];} // primero recorro y sumo todo parasaber el total de todo 
 
mysql_data_seek($totalmedios0); //Reseteo el objeto para volverlo a recorrer 
    
while ($row mysql_fetch_assoc($totalmedios)) { //Ahora recorro para saber uno por uno, cual es total de cada medio 
        
$porcentaje = ($row["TotalMedio"]*100)/$totalm//Calculo el porcentaje de cada medio 
        
$redondeo round($porcentaje 100) / 100;//redondeo el numero en 2 cifras 
    
echo ' Medio:' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'//Muestro el promedio */
    
       /* echo '<font face="Arial" size="2.5"> Medio:</font> ' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'; //Muestro el promedio */
    
        
} echo "Total:100%";
  
mysql_free_result($totalmedios); //libero el objeto */

     
     
?>
  #19 (permalink)  
Antiguo 18/07/2012, 13:59
sjj
 
Fecha de Ingreso: octubre-2008
Mensajes: 213
Antigüedad: 11 años, 1 mes
Puntos: 12
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Probá así:


Código PHP:
<?php  
     mysql_select_db
($database_connection$connection); 

$query_total "SELECT medio as NombreMedio, count(medio) as TotalMedio From mediosc GROUP BY medio ";   
$totalmedios mysql_query($query_total$connection) or die(mysql_error()); 

     
$totalm=0//declaro variable. Esta variable tendrá la suma total de todos los medios   



if ($totalmedios){ // si la consulta devolvio resultados  
    
while ($row mysql_fetch_assoc($totalmedios)) {$totalm += $row["TotalMedio"];} // primero recorro y sumo todo parasaber el total de todo  
 
mysql_data_seek($totalmedios0); //Reseteo el objeto para volverlo a recorrer  
    
while ($row mysql_fetch_assoc($totalmedios)) { //Ahora recorro para saber uno por uno, cual es total de cada medio  
        
$porcentaje = ($row["TotalMedio"]*100)/$totalm//Calculo el porcentaje de cada medio  
        
$redondeo round($porcentaje 100) / 100;//redondeo el numero en 2 cifras  
        
if ($totalm==0
         { 
           
$redondeo=0
         } 
        else 
         { 
           
$redondeo $redondeo
          }
    echo 
' Medio:' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'//Muestro el promedio */ 
     
       /* echo '<font face="Arial" size="2.5"> Medio:</font> ' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'; //Muestro el promedio */ 
     
        
} echo "Total:100%"
  
mysql_free_result($totalmedios); //libero el objeto */ 
}  
      
     
?>
  #20 (permalink)  
Antiguo 18/07/2012, 14:10
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Cita:
Iniciado por sjj Ver Mensaje
Probá así:


Código PHP:
<?php  
     mysql_select_db
($database_connection$connection); 

$query_total "SELECT medio as NombreMedio, count(medio) as TotalMedio From mediosc GROUP BY medio ";   
$totalmedios mysql_query($query_total$connection) or die(mysql_error()); 

     
$totalm=0//declaro variable. Esta variable tendrá la suma total de todos los medios   



if ($totalmedios){ // si la consulta devolvio resultados  
    
while ($row mysql_fetch_assoc($totalmedios)) {$totalm += $row["TotalMedio"];} // primero recorro y sumo todo parasaber el total de todo  
 
mysql_data_seek($totalmedios0); //Reseteo el objeto para volverlo a recorrer  
    
while ($row mysql_fetch_assoc($totalmedios)) { //Ahora recorro para saber uno por uno, cual es total de cada medio  
        
$porcentaje = ($row["TotalMedio"]*100)/$totalm//Calculo el porcentaje de cada medio  
        
$redondeo round($porcentaje 100) / 100;//redondeo el numero en 2 cifras  
        
if ($totalm==0
         { 
           
$redondeo=0
         } 
        else 
         { 
           
$redondeo $redondeo
          }
    echo 
' Medio:' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'//Muestro el promedio */ 
     
       /* echo '<font face="Arial" size="2.5"> Medio:</font> ' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'; //Muestro el promedio */ 
     
        
} echo "Total:100%"
  
mysql_free_result($totalmedios); //libero el objeto */ 
}  
      
     
?>
Gracias por tu ayuda lo he puesto y me arroja lo sig:
Warning: mysql_data_seek() [function.mysql-data-seek]: Offset 0 is invalid for MySQL result index 8 (or the query data is unbuffered)
que es esta linea
mysql_data_seek($totalmedios, 0);
  #21 (permalink)  
Antiguo 18/07/2012, 14:35
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Si borro esa linea no me rroja nada aunque ya halla registros en mi BD xD
  #22 (permalink)  
Antiguo 18/07/2012, 14:37
sjj
 
Fecha de Ingreso: octubre-2008
Mensajes: 213
Antigüedad: 11 años, 1 mes
Puntos: 12
Respuesta: Porcentaje de cada dato encontrado en mi tabla

mmm, creo cometí un error. A ver si le mandamos el else al final:

Código PHP:
<?php  
     mysql_select_db
($database_connection$connection); 

$query_total "SELECT medio as NombreMedio, count(medio) as TotalMedio From mediosc GROUP BY medio ";   
$totalmedios mysql_query($query_total$connection) or die(mysql_error()); 

     
$totalm=0//declaro variable. Esta variable tendrá la suma total de todos los medios   





if ($totalmedios){ // si la consulta devolvio resultados  
    
while ($row mysql_fetch_assoc($totalmedios)) {$totalm += $row["TotalMedio"];} // primero recorro y sumo todo parasaber el total de todo  
 
mysql_data_seek($totalmedios0); //Reseteo el objeto para volverlo a recorrer  
    
while ($row mysql_fetch_assoc($totalmedios)) { //Ahora recorro para saber uno por uno, cual es total de cada medio  
        
$porcentaje = ($row["TotalMedio"]*100)/$totalm//Calculo el porcentaje de cada medio  
        
$redondeo round($porcentaje 100) / 100;//redondeo el numero en 2 cifras  
    
echo ' Medio:' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'//Muestro el promedio */ 
     
       /* echo '<font face="Arial" size="2.5"> Medio:</font> ' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'; //Muestro el promedio */ 
     
        
} echo "Total:100%"
  
mysql_free_result($totalmedios); //libero el objeto */ 
}  
else{
$porcentaje 0;
$redondeo 0;
echo 
' Medio:' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'//Muestro el promedio */
}
      
     
?>
Esto funcionaría si todos los nombres de medio existen en la tabla independientemente de que tengan o no registros. ¿Es así?
  #23 (permalink)  
Antiguo 18/07/2012, 16:36
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Hola gracias pero marca el mismo error
Warning: mysql_data_seek() [function.mysql-data-seek]: Offset 0 is invalid for MySQL result index 8 (or the query data is unbuffered)


mysql_data_seek($totalmedios, 0);
  #24 (permalink)  
Antiguo 18/07/2012, 18:37
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

existe otra manera de evitar este error???
  #25 (permalink)  
Antiguo 23/07/2012, 12:13
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.263
Antigüedad: 8 años, 5 meses
Puntos: 9
Respuesta: Porcentaje de cada dato encontrado en mi tabla

Lo he resuelto Gracias

Última edición por Briss; 23/07/2012 a las 12:23
  #26 (permalink)  
Antiguo 09/10/2014, 16:50
 
Fecha de Ingreso: octubre-2014
Ubicación: guatemala
Mensajes: 2
Antigüedad: 5 años, 1 mes
Puntos: 0
Respuesta: Porcentaje de cada dato encontrado en mi tabla

hola, una pregunta... como solucionaste tu problema?

Etiquetas: cada, dato, encontrado, mysql, porcentaje, registro, sql, tabla
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 10:54.