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">¿Qué le parece la pá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.