Ver Mensaje Individual
  #14 (permalink)  
Antiguo 06/01/2010, 12:29
jgames88
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: crear grafico de barras desde php

Mira voy hacer uno de 4 columnas y despues comparas y te fijas como agregue las 2 nuevas columnas, es facil lo vas a ver a simple vista:

Ejemplo:

- Se tiene una encuesta en una pagina web la cual pregunta: ¿Qué le parece la página web?, la cual tiene como respuestas 4 opciones y son:

- Excelente.
- Buena.
- Regular.
- Mala.

El formulario de la encuenta es asi:

Código HTML:
<div align="center">&iquest;Qu&eacute; le parece la p&aacute;gina?<br />
  <br />
  <form id="form1" name="form1" method="post" action="proceso.php">
    <p>
      <label>
        <input type="radio" name="opciones" value="excelente" />
        Excelente</label>
      <br />
      <label>
        <input type="radio" name="opciones" value="bueno" />
        Bueno</label>
      <br />
      <label>
        <input type="radio" name="opciones" value="regular" />
        Regular</label>
      <br />
      <label>
        <input type="radio" name="opciones" value="malo" />
        Malo</label>
      <br />
      <label>
      <input type="submit" name="Submit" value="Votar" />
      </label>
    </p>
  </form>
</div> 
Ese formulario nos va a enviar a una nueva página web la cual va aprocesar los datos que se llame proceso.php. En la página proceso.php nos vamos a traer los votos totales de las 4 categorias, cada categoria es un campo de la tabla votos:

Código PHP:
<?
$q 
"SELECT excelente, bueno, regular, bueno FROM votos WHERE id=1";
$query mysql_query($q);
$row mysql_fetch_array($query);

//Ahora segun el voto de la persona actualizamos el campo al cual vaya el voto.

$i=0;

if(
$_REQUEST['opciones']=="excelente")
{
    
$i $row['excelente']+1;
    
$q "UPDATE votos SET excelente = ".$i." WHERE id=1";
    
$query mysql_query($q);
}
else
if(
$_REQUEST['opciones']=="bueno")
{
    
$i $row['bueno']+1;
    
$q "UPDATE votos SET bueno = ".$i." WHERE id=1";
    
$query mysql_query($q);
}
else
if(
$_REQUEST['opciones']=="regular")
{
}
    
$i $row['regular']+1;
    
$q "UPDATE votos SET regular = ".$i." WHERE id=1";
    
$query mysql_query($q);
else
if(
$_REQUEST['opciones']=="malo")
{
    
$i $row['malo']+1;
    
$q "UPDATE votos SET malo = ".$i." WHERE id=1";
    
$query mysql_query($q);
}

//Una vez que se actualizan las tablas se va a generar las columnas en este caso 4.
//Nos traemos los valores actualizados con un SELECT

$q "SELECT excelente, bueno, regular, bueno FROM votos WHERE id=1";
$query mysql_query($q);
$row mysql_fetch_array($query);

//Se saca una regla de tres para conocer el porcentaje de cada columna.

$votos_totales $row['excelente']+$row['bueno']+$row['regular']+$row['malo'];
$porcentaje_excelente = ($row['excelente']*100)/$votos_totales
$porcentaje_bueno = ($row['bueno']*100)/$votos_totales
$porcentaje_regular = ($row['regular']*100)/$votos_totales
$porcentaje_malo = ($row['malo']*100)/$votos_totales

//Por ultimo calculamos los pixeles de aumento de las columnas.
//Cada 1% lo voy a poner igual a 2 pixeles.

$aumento_excelente $porcentaje_excelente*2;
$aumento_bueno $porcentaje_bueno*2;
$aumento_regular $porcentaje_regular*2;
$aumento_malo $porcentaje_malo*2;
?>
Por ultimo se construye las columnas

Código HTML:
<div align="center">
<table width="700" border="1">
<tr>
<td width="170" valign="bottom">
<div align="center">
<table width="50" height="<? echo $aumento_excelente;?>" border="0">
<tr>
<td bgcolor="#FFFF00"></td>
</tr>
</table>
</div></td>
<td width="184" valign="bottom">
<div align="center">
<table width="50" height="<? echo $aumento_bueno;?>" border="0">
<tr>
<td bgcolor="#FF0000"></td>
</tr>
</table>
</div></td>
<td width="164" valign="bottom"><div align="center">
<table width="50" height="<? echo $aumento_regular;?>" border="0">
<tr>
<td bgcolor="#FFFF00"></td>
</tr>
</table>
</div></td>
<td width="154" valign="bottom"><div align="center">
<table width="50" height="<? echo $aumento_malo;?>" border="0">
<tr>
<td bgcolor="#FFFF00"></td>
</tr>
</table>
</div></td>
</tr>
</table>
<table width="700" border="1">
<tr>
<td width="169"><div align="center"><? echo $porcentaje_excelente." %"; ?></div></td>
<td width="184"><div align="center"><? echo $porcentaje_bueno." %"; ?></div></td>
<td width="165"><div align="center"><? echo $porcentaje_regular." %"; ?></div></td>
<td width="154"><div align="center"><? echo $porcentaje_malo." %"; ?></div></td>
</tr>
</table>
<table width="700" border="1">
<tr>
<td width="169"><div align="center">Excelente</div></td>
<td width="184"><div align="center">Bueno</div></td>
<td width="165"><div align="center">Regular</div></td>
<td width="154"><div align="center">Malo</div></td>
</tr>
</table>
</div> 
Listo aqui se tiene un generador de graficos de barras de 4 columnas.