27/4/2015 Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos Como Hacer un Sistema de Encuestas con PHP y
Views 44 Downloads 0 File size 2MB
27/4/2015
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
Como Hacer un Sistema de Encuestas con PHP y MySQL Por Edwind Pineda ὕ diciembre 21, 2012
MySQL, PHP
64 Comentarios
PUBLICIDAD
DEMO
⬇ DESCARGAR
En este tutorial aprenderas a hacer un sistema de encuestas funcional, práctico y expandible, usaremos PHP y MySQL con tablas relacionales. Trabajaremos con 4 ficheros PHP, uno para la conexión a la base de datos (conexion.php), uno para listar las encuestas (index.php), otro para crear nuevas encuestas (agregar.php), el que mostrara los resultados de las encuestas (resultado.php) y por ultimo estilos.css que se encargara de darle algo de estetica pero tambien de una parte muy esencial que es la de mostrar la barra de votaciones. Si en ciertas partes el código te resulta muy complejo, lee los comentarios.
0. estilos.css .barra{ http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
1/21
27/4/2015
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
.barra{ background: #ff3019;
background: ‐moz‐linear‐gradient(top, #ff3019 0%, #cf0404 100%);
background: ‐webkit‐linear‐gradient(top, #ff3019 0%,#cf0404 100%); background: linear‐gradient(to bottom, #ff3019 0%,#cf0404 100%); clear: both;
height: 15px; color: white; font‐weight: bold;
text‐align: right; padding: 6px; border‐radius: 4px; max‐width: 356px;
}
min‐width: 20px;
/* A partir de aqui es solo cosmetico, lo puedes borrar */ *{
margin: 0;
padding: 0;
font‐family: sans‐serif; font‐size: 14px;
} body{ background: #464646; } a{
text‐decoration: none;
color: red;
} .fr{
float: right;
} .fl, .votar{
float: left;
} .cf{
clear: both;
http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
2/21
27/4/2015
}
clear: both;
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
.wrap{ padding: 25px;
margin: 0 auto;
width: 385px; background: #F3F3F3;
border‐radius: 4px;
margin‐top: 70px; border: 1px solid #E0E0E0;
} h1{ margin‐bottom: 20px;
font‐size: 21px;
border‐bottom: 1px solid #DDD; padding‐bottom: 15px;
text‐align: center;
} form > div{
margin‐bottom: 20px;
} form .titulo{ }
margin‐right: 20px;
form label{ }
display: block;
form input[type='text'], select{
border: 1px solid #E0E0E0; padding: 6px;
}
resize: none;
form input[type="submit"]{ padding: 8px 16px;
☰
background: gray; border: 0; display: block;
font‐weight: bold; color: white;
http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
ὐ
3/21
27/4/2015
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
color: white; border‐radius: 6px;
} form input[type="submit"]:hover{ background: #505050; } ul.votacion{ margin‐bottom: 25px; list‐style: none; } .votacion li{ padding: 8px;
background: #FCFCFC; border‐radius: 5px; margin‐bottom: 5px;
} .votacion li:hover{ background: white; } .votacion li a{ color: gray; }
font‐weight: bold; font‐size: 16px;
.votacion li a:hover{ color: black; } .votacion li span{ margin‐left: 10px; } .votacion .fl{ margin‐bottom: 5px; } .volver{
display: block; padding‐top: 15px; clear: both;
} .resultado{
http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
4/21
27/4/2015
.resultado{ float: left;
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
margin‐left: 10px; margin‐top: 7px;
}
color: black;
1. SQL Creamos una tala con el nombre encuestas con los siguientes campos: id, titulo y fecha. Aqui se almacenara los datos las encuestas como el titulo y la fecha que fue creada la encuestas, utilizaremos otra tabla para que almacene las opciones de las encuestas. CREATE TABLE IF NOT EXISTS `encuestas` ( `id` int(11) NOT NULL AUTO_INCREMENT, `titulo` varchar(50) NOT NULL, `fecha` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Ahora insertarmos unos datos de ejemplo en la tabla: INSERT INTO `encuestas` (`id`, `titulo`, `fecha`) VALUES (NULL , 'Que os parecen los tutoriales de PHP?', '2012‐12‐15'); Creamos otra tabla con el nombre opciones con los siguientes campos: id, id_encuesta, nombre y valor. El campo de id_encuesta tendrá relación con el campo id de la tabla encuestas, en nombre ira el nombre y valor guardara el numero de votos que tendra la opcion respectiva. CREATE TABLE IF NOT EXISTS `opciones` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_encuesta` int(11) NOT NULL, `nombre` varchar(50) NOT NULL, http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
5/21
27/4/2015
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
`valor` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Insertamos datos a la tabla opciones: INSERT INTO `opciones` (`id` ,`id_encuesta` ,`nombre` ,`valor`) VALUES (NULL , '1', 'Muy Bueno', '14') , (NULL , '1', 'Bueno', '6') , (NULL , '1', 'Malo', '2'); PUBLICIDAD
Fijaos que he definido id_encuesta con 1 y es porque quiero que estas opciones esten relacionadas con la encuestas que creamos anteriormente que llevaba el id de 1. Si no entendisteis bien como vamos a trabajar las relaciones de las tablas, esta grafica te aclarará las dudas:
http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
6/21
27/4/2015
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
02. conexion.php El tipico fichero PHP para guardar los datos de la conexión, nada del otro mundo:
Sistema de encuestas
Encuestas
+ Agregar nueva encuesta
Nos debería ir quedando así:
http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
8/21
27/4/2015
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
04. encuesta.php Linea 04: Si no existe la variable de URL se regresara a la pagina principal. Linea 11: Si le dan a votar (el form de votacion ira abajo) y si han seleccionado una opcion se va a actualizar los datos del campo ‘valor’ de la tabla ‘opciones’: 1
}
}
$opciones = $_POST['valor']; $mod = mysql_query("SELECT * FROM opciones WHERE id = " while($result = mysql_fetch_object($mod)){ $valor = $result‐>valor + 1; // obtenemos el valor de 'v mysql_query("UPDATE opciones SET valor = '".$valor } header('location: resultado.php?id='.$id); // Por ultimo lo
Ahora la parte HTML donde ira el form de votacion, aqui vamos a generar una consulta a la base datos para que se muestren los datos de la tabla ‘encuestas’ con relación a la tabla ‘opciones’ como radiobuttons, partes de un form: Linea 15: En esta linea haremos un query con INNER JOIN en el cual trabajaremos con las tablas ‘encuestas’ y ‘opciones’ donde a sera encuestas y b es opciones, aqui buscaremos filas donde a.id sea igual a b.encuesta_id, el valor de a.id que se comparara sera definido por $id, este valor lo obtuvimos al principio en el primer pedazo de código mediante GET. Linea 18 y 27: Con el resultado del query hacemos un while donde mostraremos el titulo de la encuesta y luego en la linea 48 se muestran cada una de las opciones como input[type='radio'], $aux es una variable auxiliar que nos ayuda a detener el bucle para que ciertos elementos se muestren solo una vez. PUBLICIDAD
http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
10/21
27/4/2015
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Sistema de encuestas
Si todo salió bien, encuesta.php deberia verse asi:
http://web.tursos.com/comohacerunsistemadeencuestasconphpymysql/
12/21
27/4/2015
Como hacer un Sistema de encuestas con PHP y MySQL | WebTursos
05. resultado.php Esta archivo es mas simple, aqui mostraremos los resultados de las encuestas de acuerdo al id obtenido por GET (resultado.php?id=x): Linea 11: Para obtener el valor usamos SUM() para que nos resulte la suma total del valor en un solo numero: 1