Foros del Web » Programando para Internet » PHP »

Graficar resultados obtenidos en una consulta

Estas en el tema de Graficar resultados obtenidos en una consulta en el foro de PHP en Foros del Web. Hola a todos tengo la siguiente consulta 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 ...
  #1 (permalink)  
Antiguo 10/10/2012, 15:36
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Graficar resultados obtenidos en una consulta

Hola a todos tengo la siguiente consulta

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   
if ( mysql_num_rows $totalmedios ) > ) {
    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 $row["NombreMedio"]." ".$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 
"Total:0%";  

       
     
?>
La cual me arroja los porcentajes de cada Medio pero me gustaria tambien graficarlos alguna sugerencia????
  #2 (permalink)  
Antiguo 10/10/2012, 15:37
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Graficar resultados obtenidos en una consulta

estoy checando esto
http://webintenta.com/crear-graficos...s-con-php.html
pero no sé como cambiar la parte de array
  #3 (permalink)  
Antiguo 10/10/2012, 15:38
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Graficar resultados obtenidos en una consulta

usar highchar y jquery:
http://www.forosdelweb.com/f18/php-e...ficar-1016879/
en ese tema puse un ejemplo de su funcionamiento y link de referencia saludos
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #4 (permalink)  
Antiguo 10/10/2012, 16:02
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Graficar resultados obtenidos en una consulta

He hecho lo siguiente

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   
if ( mysql_num_rows $totalmedios ) > ) {
    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 $row["NombreMedio"]." ".$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 
"Total:0%";  

       
     
?></font>


Código HTML:
<table border="0">
  <tr>
  <tr>
	<td><b> <?php echo $row["NombreMedio"]?></b></td>
	<td>&nbsp;</td><td width="<?php echo $redondeo; ?>"  bgcolor="#000066" </td>
  </tr>
</table> 
Logre hacer un td de acuerdo al tamaño del porcentaje bien lo que me gustaria es

que
echo $row["NombreMedio"]." ".$redondeo.'%<br>'; //Muestro el promedio */

Aqui donde muestro el Medio y su porcentaje haga mi tabla... como no tengo medio por medio tengo q ponerlo en mi while pero no se como :S
Gracias
  #5 (permalink)  
Antiguo 10/10/2012, 16:11
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Graficar resultados obtenidos en una consulta

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. .Barra {
  5.     Padding:10px;
  6.     Display:Table;
  7.     Box-Shadow: 0 0 3px #666;
  8.     border-radius:0 5px 5px 0 ;
  9. }
  10. </style>
  11. </head>
  12. <?php
  13.     mysql_select_db($database_connection, $connection);  
  14.     $query_total = "SELECT medio as NombreMedio, count(medio) as TotalMedio From mediosc GROUP BY medio ";    
  15.     $totalmedios = mysql_query($query_total, $connection) or die(mysql_error());  
  16.     if ( mysql_num_rows ( $totalmedios ) > 0 ) {
  17.     $I=0;
  18.     while ($row = mysql_fetch_array($totalmedios)) {
  19.         $Grafico[$I]['Titulo'] = $row['NombreMedio'];
  20.         $Grafico[$I]['Valor'] = $row['TotalMedio'];
  21.         $Grafico[$I]['Color'] = '#BDDA4C';
  22.         $I++;
  23.     }
  24.     mysql_free_result($totalmedios); //libero el objeto */  
  25.  
  26.     $Max = 0;
  27.     ForEach ( $Grafico As $Datos ) { $Max += $Datos['Valor']; }
  28. ?> 
  29.     <body>
  30.         <table width="600" cellspacing="0" cellpadding="2">
  31.         <?php
  32.             ForEach( $Grafico As $Datos ) {
  33.                 $POR = Round((( $Datos['Valor'] / $Max  ) * 100),2);
  34.                 Echo <<<HTML
  35.                 <tr>
  36.                     <td width="20%">
  37.                         <strong>$Datos[Titulo]:</strong> $Datos[Valor]
  38.                     </td>
  39.                     <td>
  40.                         <Div Style="width:$POR%;background:$Datos[Color];" Class="Barra"> </Div>$POR%
  41.                     </td>
  42.                 </tr>
  43. HTML;
  44.             }
  45.         ?>
  46.         </table>
  47.     </body>
  48. </html>
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 10/10/2012, 16:26
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Graficar resultados obtenidos en una consulta

Cita:
Iniciado por NSD Ver Mensaje
Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. .Barra {
  5.     Padding:10px;
  6.     Display:Table;
  7.     Box-Shadow: 0 0 3px #666;
  8.     border-radius:0 5px 5px 0 ;
  9. }
  10. </style>
  11. </head>
  12. <?php
  13.     mysql_select_db($database_connection, $connection);  
  14.     $query_total = "SELECT medio as NombreMedio, count(medio) as TotalMedio From mediosc GROUP BY medio ";    
  15.     $totalmedios = mysql_query($query_total, $connection) or die(mysql_error());  
  16.     if ( mysql_num_rows ( $totalmedios ) > 0 ) {
  17.     $I=0;
  18.     while ($row = mysql_fetch_array($totalmedios)) {
  19.         $Grafico[$I]['Titulo'] = $row['NombreMedio'];
  20.         $Grafico[$I]['Valor'] = $row['TotalMedio'];
  21.         $Grafico[$I]['Color'] = '#BDDA4C';
  22.         $I++;
  23.     }
  24.     mysql_free_result($totalmedios); //libero el objeto */  
  25.  
  26.     $Max = 0;
  27.     ForEach ( $Grafico As $Datos ) { $Max += $Datos['Valor']; }
  28. ?> 
  29.     <body>
  30.         <table width="600" cellspacing="0" cellpadding="2">
  31.         <?php
  32.             ForEach( $Grafico As $Datos ) {
  33.                 $POR = Round((( $Datos['Valor'] / $Max  ) * 100),2);
  34.                 Echo <<<HTML
  35.                 <tr>
  36.                     <td width="20%">
  37.                         <strong>$Datos[Titulo]:</strong> $Datos[Valor]
  38.                     </td>
  39.                     <td>
  40.                         <Div Style="width:$POR%;background:$Datos[Color];" Class="Barra"> </Div>$POR%
  41.                     </td>
  42.                 </tr>
  43. HTML;
  44.             }
  45.         ?>
  46.         </table>
  47.     </body>
  48. </html>
Gracias por tu ayuda pero me arrojo la sig

Parse error: syntax error, unexpected $end in
  #7 (permalink)  
Antiguo 10/10/2012, 16:34
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Graficar resultados obtenidos en una consulta

asegurate que las lineas:
Código PHP:
Ver original
  1. HTML;
esten al principio del renglon, sin ningun espeacio antes ni despues solo eso.

si te sigue tirando error habria que buscar que no tengas ningun error de sintaxis.

y ademas hay un renglo de mas que se me paso, quedarias asi:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. .Barra {
  5.     Padding:10px;
  6.     Display:Table;
  7.     Box-Shadow: 0 0 3px #666;
  8.     border-radius:0 5px 5px 0 ;
  9. }
  10. </style>
  11. </head>
  12. <?php
  13.     mysql_select_db($database_connection, $connection);  
  14.     $query_total = "SELECT medio as NombreMedio, count(medio) as TotalMedio From mediosc GROUP BY medio ";    
  15.     $totalmedios = mysql_query($query_total, $connection) or die(mysql_error());  
  16.     $I=0;
  17.     while ($row = mysql_fetch_array($totalmedios)) {
  18.         $Grafico[$I]['Titulo'] = $row['NombreMedio'];
  19.         $Grafico[$I]['Valor'] = $row['TotalMedio'];
  20.         $Grafico[$I]['Color'] = '#BDDA4C';
  21.         $I++;
  22.     }
  23.     mysql_free_result($totalmedios); //libero el objeto */  
  24.  
  25.     $Max = 0;
  26.     ForEach ( $Grafico As $Datos ) { $Max += $Datos['Valor']; }
  27. ?>  
  28.     <body>
  29.         <table width="600" cellspacing="0" cellpadding="2">
  30.         <?php
  31.             ForEach( $Grafico As $Datos ) {
  32.                 $POR = Round((( $Datos['Valor'] / $Max  ) * 100),2);
  33.                 Echo <<<HTML
  34.                 <tr>
  35.                     <td width="20%">
  36.                         <strong>$Datos[Titulo]:</strong> $Datos[Valor]
  37.                     </td>
  38.                     <td>
  39.                         <Div Style="width:$POR%;background:$Datos[Color];" Class="Barra"> </Div>$POR%
  40.                     </td>
  41.                 </tr>
  42. HTML;
  43.             }
  44.         ?>
  45.         </table>
  46.     </body>
  47. </html>
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #8 (permalink)  
Antiguo 10/10/2012, 16:36
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Graficar resultados obtenidos en una consulta

quedo asi


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   
if ( mysql_num_rows $totalmedios ) > ) {
   
$I=0;
    while (
$row mysql_fetch_array($totalmedios)) {
        
$Grafico[$I]['Titulo'] = $row['NombreMedio'];
        
$Grafico[$I]['Valor'] = $row['TotalMedio'];
        
$Grafico[$I]['Color'] = '#BDDA4C';
        
$I++;
       
/* 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 */  
   
$Max 0;
    ForEach ( 
$Grafico As $Datos ) { $Max += $Datos['Valor']; }
}   
else{ 
$porcentaje 0
$redondeo 0

echo 
"Total:0%";  

       
     
?></font>

Código HTML:
<table width="600" cellspacing="0" cellpadding="2">
        <?php 
            ForEach( $Grafico As $Datos ) {
                $POR = Round((( $Datos['Valor'] / $Max  ) * 100),2);
                Echo <<<HTML
                <tr>
                    <td width="20%">
                        <strong>$Datos[Titulo]:</strong> $Datos[Valor]
                    </td>
                    <td>
                        <Div Style="width:$POR%;background:$Datos[Color];" Class="Barra"> </Div>$POR%
                    </td>
                </tr>
HTML;
            } 
        ?>
        </table> 

Solo qque no se hace la tabla
  #9 (permalink)  
Antiguo 10/10/2012, 16:37
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Graficar resultados obtenidos en una consulta

Gracias me faltaba el style xD creo que funciona Bien ahora
  #10 (permalink)  
Antiguo 10/10/2012, 16:41
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Graficar resultados obtenidos en una consulta

te mostrara todas las barras con el mismo color, tendrias que variar dentro del for el color que quieres usar para cada uno pero dejando eso de lado estaria.

saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #11 (permalink)  
Antiguo 10/10/2012, 16:42
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Graficar resultados obtenidos en una consulta

Cita:
Iniciado por NSD Ver Mensaje
te mostrara todas las barras con el mismo color, tendrias que variar dentro del for el color que quieres usar para cada uno pero dejando eso de lado estaria.

saludos.
Ok me enredo con eso los for :S

AMMM pusiste que tenias un renglon de más????
  #12 (permalink)  
Antiguo 10/10/2012, 16:53
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Graficar resultados obtenidos en una consulta

si,
Código PHP:
Ver original
  1. if ( mysql_num_rows ( $totalmedios ) > 0 ) {
ese estaba de mas y me arrojaba error aqui, eliminadolo andubo sin problema (pero eso en mi pc en la tuya andara sin problemas).

con los de los for para no enredarte podrias hacer algo asi:
Código PHP:
Ver original
  1. if ( mysql_num_rows ( $totalmedios ) > 0 ) {
  2.    $I=0;
  3.     while ($row = mysql_fetch_array($totalmedios)) {
  4.         $Grafico[$I]['Titulo'] = $row['NombreMedio'];
  5.         $Grafico[$I]['Valor'] = $row['TotalMedio'];
  6.         $Grafico[$I]['Color'] = $Colores[$I];
  7.         $I++;
  8.        /* echo '<font face="Arial" size="2.5"> Medio:</font> ' .$row["NombreMedio"]." ".'promedio '.$redondeo.'%<br>'; //Muestro el promedio */  
  9.  
  10.         }
  11.   mysql_free_result($totalmedios); //libero el objeto */  
  12.    $Max = 0;
  13.     ForEach ( $Grafico As $Datos ) { $Max += $Datos['Valor']; }
  14. }

y arriba de todo en el documento defines los colores:

Código PHP:
Ver original
  1. $Colores[0] = '#990000';
  2. $Colores[1] = '#009900';
  3. $Colores[2] = '#000099';
  4. $Colores[3] = '#999900';
y asi tantos como nesesites
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #13 (permalink)  
Antiguo 10/10/2012, 17:39
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Graficar resultados obtenidos en una consulta

Gracias por toda tu ayuda

Etiquetas: mysql, resultados, sql, variables, graficos
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 18:09.