> Manuales > Sistema de encuestas PHP y MySQL

La motivación que nos puede hacer crear un sistema de encuestas y descripción de la base de datos a utilizar.

Algunas veces deseamos saber ciertas preferencias de los visitantes de nuestra pagina o qué opiniones tienen sobre algún tema específico. Una solución a esto es tener un sistema de encuestas, el cual contenga opciones, las cuales podamos votar. Antes de empezar debemos tener en cuenta que nuestro sistema de encuesta debe tener los siguientes requerimientos.
Referencias: Este manual supone que el lector tiene conocimientos, aunque sean básicos, sobre las tecnologías PHP y MySQL. En DesarrolloWeb disponemos del material necesario para disponer de dicha base, principlamente en nuestra sección PHP a fondo, y particularmente en nuestro Manual de PHP y el Taller de MySQL.

Para resolver esto utilizaremos una base de datos con dos tablas, una correspondiente a las opciones de la encuesta y la otra para los datos del administrador.

Nota: La tabla de administración no afecta directamente al funcionamiento del sistema de encuestas. Simplemente serviría para guardar nombres de usuario y clave de las personas que podrían administrar la aplicación de encuestas. No la vamos a ver por ahora, aunque os remitimos al manual de Sistema de autentificación PHP, donde enseñamos a construir un sistema protegido por usuario/clave.

Asímismo, queremos indicar que la creación de la base de datos podría variar dependiendo del desarrollador que la realice, pudiendo haber otras opciones también interesantes para modelizar este sistema de encuestas.


Nuestra primera tabla constará de 11 campos de la siguiente manera.
  1. Un campo para la pregunta de la encuesta
  2. Cuatro posibles respuestas, las cuales serán las que nos interesa saber
  3. Cuatro valores acumulativos del número de votos por cada respuesta
  4. Un campo para el valor total de votos
Hasta ahora sólo hemos indicado 10 campos. El campo 11, que en realidad es el primero, es nuestra clave primaria de la tabla. El script SQL para la creación de la tabla se encuentra a continuación.

DROP TABLE IF EXISTS tblenc;
CREATE TABLE tblenc (
encid int(11) NOT NULL auto_increment,
encprg varchar(50) default NULL,
encrpt1 varchar(50) default NULL,
encrpt2 varchar(50) default NULL,
encrpt3 varchar(50) default NULL,
encrpt4 varchar(50) default NULL,
encval1 int(11) NOT NULL default '0',
encval2 int(11) NOT NULL default '0',
encval3 int(11) NOT NULL default '0',
encval4 int(11) NOT NULL default '0',
enctot int(11) NOT NULL default '0',
PRIMARY KEY (encid)
) TYPE=MyISAM;

Carlos Eduardo Sotelo Pinto

Pregrado de Ingeniería de Sistemas

Manual