06-11-2014, 11:00 AM
0
En este tutorial aprenderás 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.
Estilos
Ahora vamos a crear la base de datos donde se guardará la información como respuestas, preguntas, etc
Creamos una tala con el nombre encuestas con los siguientes campos: id, titulo y fecha.
Aquí se almacenara los datos las encuestas como el titulo y la fecha que fue creada la encuestas.
Fíjate que he definido id_encuesta con 1 y es porque quiero que estas opciones estén relacionadas con la encuestas que creamos anteriormente que llevaba el id de 1.
Ahora pasaremos a crear la conexión a la base de datos.
Crearemos un archivo llamado: conexion.php
El tipico fichero PHP para guardar los datos de la conexión, nada del otro mundo:
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.
Estilos
Código:
.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;
}
.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;
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{
float: left;
margin-left: 10px;
margin-top: 7px;
color: black;
}
Ahora vamos a crear la base de datos donde se guardará la información como respuestas, preguntas, etc
Creamos una tala con el nombre encuestas con los siguientes campos: id, titulo y fecha.
Aquí se almacenara los datos las encuestas como el titulo y la fecha que fue creada la encuestas.
Código PHP:
CREATE TABLE IF NOT EXISTS `encuestas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titulo` varchar(30) NOT NULL,
`fecha` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Y le insertaremos una pregunta con este SQL para agregar 1 pregunta.
Código MySQL.
INSERT INTO `encuestas` (`id`, `titulo`, `fecha`) VALUES
(1, '¿Que te pareció el tutorial?', '2014-10-11');
Utilizaremos otra tabla para que almacene las opciones de las encuestas.
Código SQL.
CREATE TABLE IF NOT EXISTS `opciones` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`id_encuesta` INT(11) NOT NULL,
`nombre` VARCHAR(50) NOT NULL,
`valor` INT(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Después insertaremos datos a la tabla opciones que acabamos de crear.
Código MySQL.
INSERT INTO `opciones` (`id` ,`id_encuesta` ,`nombre` ,`valor`)
VALUES (NULL , '1', 'Muy Bueno', '14')
, (NULL , '1', 'Bueno', '6')
, (NULL , '1', 'Malo', '2');
Ahora pasaremos a crear la conexión a la base de datos.
Crearemos un archivo llamado: conexion.php
El tipico fichero PHP para guardar los datos de la conexión, nada del otro mundo:
Código PHP:
<?php // datos para la conexion a mysql
define('DB_SERVER','localhost');
define('DB_NAME','TU BASE DE DATOS');
define('DB_USER','TU USUARIO');
define('DB_PASS','TU CLAVE');
$conex = mysql_connect (DB_SERVER,DB_USER,DB_PASS);
mysql_select_db(DB_NAME,$conex);
?>