Está en la página 1de 0

Aplicaciones de Internet www.CarlosBacalla.

com
Ing. Carlos Bacalla Pgina 1 de 10
SISTEMA DE ENCUESTAS CON PHP Y MYSQL
Objetivo:
Trabajar con MySQL, Base Datos y Tablas
Trabajar con Librera de Conexin, INCLUDE
Generar un grafico de columnas con Codigo PHP
I. CREAR LA BASE DE DATOS: SistemaEncuesta
Vamos a crear encuestas para nuestro sitio web. Para ello crearemos dos sencillas tablas en MySQL,
una para controlar las encuestas propiamente dichas y otra para las respuestas de cada encuesta.

Tabla de encuestas:

CREATE TABLE encuestas (
id INT not null AUTO_INCREMENT,
titulo VARCHAR (100) not null ,
fecha INT(10) not null ,
PRIMARY KEY (id));
Id: Es el identificador de la encuesta. Se incrementa automticamente y sirve de clave primaria.
Titulo: Tendremos 50 caracteres para asignar un titulo que contendr la pregunta en s.
Fecha: Servir tanto para conocer la fecha de la encuesta, como para que slo se muestre la
ltima.


Tabla de respuestas:

CREATE TABLE respuestas (
id INT not null AUTO_INCREMENT,
texto VARCHAR (50) not null ,
votos INT (5) not null ,
idenc INT not null,
PRIMARY KEY (id));
Id: Identificador de la respuesta. Se incrementa automticamente y sirve de clave primaria.
Texto: Es el texto que describir la respuesta
Votos: El total de votos acumulados.
Idenc: Referencia al Id de la encuesta a la que est asociado.

Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 2 de 10
II. CREAR LA LIBRERA DE CONEXIN A LA BASE DATOS

ARCHIVO: CONEXIN.PHP

III. DAR DE ALTA UNA NUEVA ENCUESTA

La forma de crear una nueva encuesta ser sencilla; Un formulario nos pregunta el texto de la pregunta
y el nmero total de respuestas. Damos a "Enviar". Acto seguido tendremos un campo de texto por cada
respuesta, donde asignaremos el texto de la respuesta. Volvemos a dar a "Aceptar" y si todo ha ido bien,
nuestra encuesta ya estar dada de alta en nuestra base de datos.

Primer formulario: encuestas

ARCHIVO: ENCUESTA.PHP


Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 3 de 10



Segundo formulario, dentro de preguntas.php Bsicamente lo nico que hacemos en este formulario es
poner tantos campos de texto como posibles respuestas haya.

ARCHIVO: PREGUNTAS.PHP


Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 4 de 10
El siguiente fichero (proceso.php) es el que se encarga de guardar los cambios en la base de datos. En
un primero momento, guardamos tan solo la encuesta, con sus campos 'fecha' y 'titulo'. Posteriormente
sacamos el 'id' asignado a nuestra encuesta (la ltima almacenada) para que al insertar las respuestas
podamos hacer referencia al id de la encuesta a la que va asociada.

ARCHIVO: PROCESO.PHP



Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 5 de 10
IV. VOTAR LOS RESULTADOS
Tal y como yo he planteado este sistema de encuestas, la nica que se mostrar ser la que tenga la
fecha ms reciente, es decir, la ltima encuesta insertada. Cualquier modificacin para evitar este
funcionamiento no creo que os suponga mucho esfuerzo.
A continuacin tenis el cdigo del formulario para votar la opcin que deseada.

ARCHIVO: OPCIONES.PHP


Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 6 de 10

El cdigo que viene a continuacin, votacion.php, de momento slo aade el voto a la base de datos.
Ms adelante pondremos en ste mismo fichero el cdigo que aade la imagen con el grfico de barras:

ARCHIVO: VOTACION.PHP


Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 7 de 10
V. MOSTRAR EL GRFICO DE BARRAS
Para realizar esto lo que haremos es crearnos un fichero que conectar con la base de datos y extraer
la informacin necesaria. Crearemos una imagen, y le daremos formato con funciones de la librera gd.

Quizs a muchos de vosotros os surja la duda, tal y como me ocurri a m, de como poner en
funcionamiento esta librera: Tenis que bajaros (en caso de estar en Windows) el archivo php_gd.dll,
copiarlo a la carpeta extensions de php y descomentar la lnea donde se hace referencia a la DLL en
cuestin en el php.ini.

El cdigo, aunque a alguno a primera vista os intimide, realmente no tiene complicacin alguna, tan solo
leemos de la base de datos y dibujamos los elementos de nuestro grfico de barras:

NOTA: ste fichero ha de conectar con la base de datos. Para que funcione correctamente, tenis que
aadir que incluya conexion.php directamente vosotros en el sitio que corresponda. Dicho queda.

Ya lo tenemos todo hecho, tan slo nos falta incluir un pequeo detalle a nuestro cdigo. En el archivo
que capta los votos (votar.php) tenis que aadir el siguiente cdigo:

<img src=" votar.php" >

Y os coloco una imagen del resultado final de una encuesta cualquiera:


ARCHIVO: VOTAR.PHP



Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 8 de 10


Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 9 de 10



VI . PRESENTACIN DEL SISTEMA DE ENCUESTA

ARCHIVO: INDEX.PHP


Aplicaciones de Internet www.CarlosBacalla.com
Ing. Carlos Bacalla Pgina 10 de 10



FUENTE ORIGINAL:
http://www.programacion.com/php/articulo/encuestas_gd/
Cmo hacer encuestas con PHP y MySQL
Autor: J esus Ruiz-Aycar Vzquez


EDITADO POR:
Ing. Carlos Bacalla
www.CarlosBacalla.com