TEMA: Encuestas en php y mysql
PREGUNTA: Como hacer una encuesta en php
RESPUESTA:
Para hacer una encuesta con sus resultados graficados debes crear un tabla con los siguients campos (optativos)
1.- Idencuesta: identificador de cada encuesta
2.- pregunta:campo que almacena las pregunta
3.- respuesta1: campo que almacenara la respuesta a tu encuesta
4.- respuesta2:lo mismo que lo anterior esto dependera de la catidad de respuesta que tenga tu encuesta (por lo general 3 o 4)
5.- valor1: este campo almacena la cantidad de respuestas a cada respuesta o sea valor1 guardara todos los clic o respuestas que den en respuesta1.
6.- total:almacena el total de la suma de los campos valor1, valor2 o los que tengas
7.-Crea una imagen pequeña de uno 4x9 gif o cualquier formato para que te muestre los resultados graficados
****ENCUESTA:PHP****
Código PHP:
<?
$servidor = "localhost";
$usuario = "";
$password = "";
$base_de_datos = "encuesta";
$conextar=mysql_connect ($servidor,$usuario,$password);
mysql_select_db($base_de_datos);
$sqlupdate = "UPDATE encuestas SET valor$voto = valor$voto+1, total = total+1";
mysql_query($sqlupdate,$conextar);
$sql = "SELECT * FROM encuestas ORDER BY idencuesta desc LIMIT 1";
$resultados = mysql_query($sql,$conextar);
$row = mysql_fetch_array($resultados);
?>
<script type="text/javascript" language="JavaScript">
function resultados(){
window.open("resultados.php","","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=320,height=200");
}
</script>
<form name="form1" method="post" action="<?= $PHP_SELF?>">
<table width="256" border="0" align="center" cellpadding="0" cellspacing="0" class="forumline">
<tr valign="baseline">
<td colspan="2" class="row1">
<?=$row['pregunta']; ?>
<br>
</td>
</tr>
<tr>
<td width="110">
<?=$row['respuesta1'];?>
</td>
<td width="146"><input type="radio" name="voto" value="1">
</td>
</tr>
<tr>
<td>
<?=$row['respuesta2'];?>
</td>
<td><input type="radio" name="voto" value="2"></td>
</tr>
<tr>
<td>
<?=$row['respuesta3'];?>
</td>
<td><input type="radio" name="voto" value="3"></td>
</tr>
<tr align="center">
<td height="20" colspan="2"><input type="submit" class="post"name="Submit" value="Votar" onClick=window.open("resultados.php","","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=320,height=200");
></td>
</tr>
</table>
<p> </p></form>
****RESULTADOS.PHP****************
Código PHP:
<html>
<head>
<title>Resultados de la encuesta</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
background-color: #FFFFDD;
}
td {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
-->
</style>
</head>
<body>
<?
$servidor = "localhost";
$usuario = "";
$password = "";
$base_de_datos = "encuesta";
$conextar=mysql_connect ($servidor,$usuario,$password);
mysql_select_db($base_de_datos);
//$sqlupdate = "UPDATE encuestas SET valor$voto = valor$voto+1, total = total+1";
//mysql_query($sqlupdate,$conextar);
$sql = "SELECT * FROM encuestas ORDER BY idencuesta desc LIMIT 1";
$resultados = mysql_query($sql,$conextar);
$row = mysql_fetch_array($resultados);
$res1= round ($row['valor1']*100/$row['total'],2);
$res2= round ($row['valor2']*100/$row['total'],2);
$res3= round ($row['valor3']*100/$row['total'],2);
?>
<p>Resultados parciales de la encuesta</p>
<?=$row['pregunta']; ?><br>
<br>
<TABLE WIDTH="300" BORDER="1" ALIGN="center" BORDERCOLOR="#3097A3">
<TR>
<TD WIDTH="100"><?=$row['respuesta1']; ?></TD>
<TD WIDTH="*"><IMG HEIGHT="15" WIDTH="<?=$row["valor1"]*100/$row["total"]?>%" SRC="encuesta/barra.gif"></TD>
<TD ALIGN="center" WIDTH="70"><? echo $res1."%";?> </TD>
</TR>
<TR>
<TD WIDTH="100" ><?=$row['respuesta2']; ?></TD>
<TD WIDTH="*"><IMG HEIGHT="15" WIDTH="<?=$row["valor2"]*100/$row["total"]?>%" SRC="encuesta/barra.gif"></TD>
<TD ALIGN="center" WIDTH="70"><? echo $res2."%";?> </TD>
</TR>
<TR>
<TD WIDTH="100"><?=$row['respuesta3']; ?></TD>
<TD WIDTH="*"><IMG HEIGHT="15" WIDTH="<?=$row["valor3"]*100/$row["total"]?>%" SRC="encuesta/barra.gif"></TD>
<TD ALIGN="center" WIDTH="70"><? echo $res3."%";?> </TD>
</TR>
</TABLE>
<form name="form1" method="post" action="">
<div align="center">
<p>
<input type="submit" name="Submit" value="Cerrar Ventana" onclick="window.close();">
</p>
<p> </p>
</div>
</form>
</body>
</html>
Dudas o comentarios favor de enviar mensaje privados
Gracias
NOTA: .. la llamada a la funcion javascript window.open( .. parametros) .. Ha de estar en una sola linea y sin espacios entre los parametros, pese q si hacen un cut-and-paste veran esos saltos de línea y algun espacio por medio.