> Manuales > Sistema de encuestas PHP y MySQL

Vemos y explicamos el código de la página que muestra la encuesta en un formulario con todas las posibles respuestas para votar una.

Ahora diseñaremos nuestro formulario de encuesta. Este formulario deberá conectarse a nuestra base de datos para obtener la pregunta y las posibles respuestas.

Aunque nuestro sistema está preparado para mostrar una única encuesta, la base de datos es capaz de guardar varias. De este modo podríamos tener la encuesta actual y el histórico de todas las encuestas que se han realizado en la página. La última encuesta introducida será la que se mostrará en la página actual.


Imagen ejemplo de una encuesta

Para extraer la última encuesta introducida se utilizará una sentencia SQL en la que se ordenarán las encuestas por su identificador, de manera descendente.

SELECT * FROM tblenc order by encid desc

Otro detalle en el que debemos fijarnos es en la creación de un campo hidden (oculto) de formulario para enviar a la página de resultados el identificador de la encuesta a la que se está votando.

<?
$servidor="localhost";
$usuario="nobody";
$password="nobody";
$base="encuesta";
$SQLid = mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$SQLid);
$SQLquery = "SELECT * FROM tblenc order by encid desc";
$SQLresult = mysql_query($SQLquery,$SQLid);
$SQLrow = mysql_fetch_array($SQLresult);
?>
<form name="form1" method="post" action="encuesta.php">
<input type=hidden name="encid" value="<?echo $SQLrow[0]?>">
<table width="270" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
   <td bgcolor="#006600"><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">::::::::::::::::::::::::::::::::::::::</font></td>
</tr>
<tr>
   <td bgcolor="#FFFFCC"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>
   <? echo $SQLrow[1]?>
   </strong></font></div></td>
</tr>
<tr>
    <td bgcolor="#FFFFCC"> <p> <font size="2">
    <label>
    <input type="radio" name="voto" value="1">
    <? echo $SQLrow[2]?></label>
    <br>
    <label>
    <input type="radio" name="voto" value="2">
    <? echo $SQLrow[3]?></label>
    <br>
    <label>
    <input type="radio" name="voto" value="3">
    <? echo $SQLrow[4]?></label>
    <br>
    <label>
    <input type="radio" name="voto" value="4">
    <? echo $SQLrow[5]?></label>
    <br>
    </font></p></td>
</tr>
<tr>
    <td bgcolor="#FFFFCC"> <div align="center">
    <input type="submit" name="Submit" value="Aceptar">
    </div></td>
</tr>
</table>
</form>


Esta página almacena en una variable llamada voto el valor de la respuesta de nuestro encuestado, para luego ser enviada a la página de resultados.

Carlos Eduardo Sotelo Pinto

Pregrado de Ingeniería de Sistemas

Manual