Está en la página 1de 10

estilos.

css
.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;

font-weight: bold;
radius: 4px;

text-align: right;

max-width: 356px;

es solo cosmetico, lo puedes borrar */ *{


font-family: sans-serif;
#464646; } a{

height: 15px;

padding: 6px;

border-

min-width: 20px; } /* A partir de aqui


margin: 0;

font-size: 14px; } body{

text-decoration: none;

color: white;

color: red; } .fr{

padding: 0;
background:
float: right; } .fl,

.votar{

float: left; } .cf{

clear: both; } .wrap{

padding: 25px;

auto;

width: 385px;

background: #F3F3F3;

border-radius: 4px;

margin-top: 70px;

margin: 0

border: 1px solid #E0E0E0; } h1{

margin-

border-bottom: 1px solid #DDD;

padding-

bottom: 20px;

font-size: 21px;

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;


resize: none; } form input[type="submit"]{

padding: 8px 16px;

background: gray;

display: block;

weight: bold;

border: 0;

color: white;

input[type="submit"]:hover{
8px;

background: #505050; } ul.votacion{


list-style: none; } .votacion li{

background: #FCFCFC;

border-radius: 5px;

font-weight: bold;

font-

border-radius: 6px; } form

margin-bottom: 25px;
} .votacion li:hover{

padding:

margin-bottom: 5px;

background: white; } .votacion li a{ color: gray;


font-size: 16px; } .votacion li a:hover{

color: black; } .votacion li span{

margin-left: 10px; } .votacion .fl{

margin-bottom: 5px; } .volver{

display: block;

clear: both; } .resultado{


7px;

padding: 6px;

color: black; }

float: left;

margin-left: 10px;

padding-top: 15px;
margin-top:

<?php // datos para la conexion a mysql define('DB_SERVER','localhost');


define('DB_NAME','encuestas'); define('DB_USER','lomismodown1');
define('DB_PASS','lomismodown1'); $conex = mysql_connect
(DB_SERVER,DB_USER,DB_PASS); mysql_select_db(DB_NAME,$conex);

EL PASO 1 YA ESTA , SOLO FALTA EL ESTILO.CSS , EMPIEZA EN


EL PASO 2

<?php require('conexion.php'); $sql = "SELECT * FROM encuestas ORDER BY id


DESC"; $req = mysql_query($sql); ?> <!DOCTYPE HTML> <html lang="en-US">
<head> <meta charset="UTF-8"> <title>Sistema de encuestas</title>
<link rel="stylesheet" href="estilos.css"> </head> <body>
class="wrap">

<h1>Encuestas</h1>

<div

<ul class="votacion index">

<?php

while($result = mysql_fetch_object($req)){

echo '<li><a href="encuesta.php?id='.$result->id.'">'.$result->titulo.'</a></li>';


}

?>

nueva encuesta</a>

</ul>

</div> </body> </html>

<?php require('conexion.php');
{

<a href="agregar.php">+ Agregar

$id = $_GET['id'];

header('location: index.php');
if(isset($_POST['votar']))

$opciones = $_POST['valor'];

if(!isset($_GET['id']))
}
if(isset($_POST['valor'])){
$mod =

mysql_query("SELECT * FROM opciones WHERE id = ".$opciones);


while($result = mysql_fetch_object($mod)){

$valor =

$result->valor + 1; // obtenemos el valor de 'valor' y le aadimos 1 unidad


mysql_query("UPDATE opciones SET valor = '".$valor."' WHERE id = ".$opciones); //
luego ejecutamos el query SQL

header('location: resultado.php?id='.$id); // Por ultimo lo redireccionamos


a la encuestas mostrando los resultados.

} ?>

<!DOCTYPE HTML> <html lang="en-US"> <head>


<title>Sistema de encuestas</title>

<meta charset="UTF-8">
<link rel="stylesheet"

href="estilos.css"> </head> <body> <div class="wrap"> <form action=""


method="post"> <?php $aux = 0; $sql = "SELECT a.titulo as titulo, a.fecha as
fecha, b.id as id, b.nombre as nombre, b.valor as valor FROM encuestas a INNER
JOIN opciones b ON a.id = b.id_encuesta WHERE a.id = ".$id; $req =
mysql_query($sql); while($result = mysql_fetch_object($req)){

if($aux ==

0){

echo '<h1>'.$result->titulo.'</h1>';

echo

'<ul>';

$aux = 1;

echo '<li><input name="valor"

type="radio" value="'.$result->id.'"><span>'.$result->nombre.'</span></li>'; }
echo '</ul>';

if(!isset($_POST['valor'])){

echo "<div

class='error'>Selecciona una opcion.</div>";

name="votar" type="submit" value="Votar">';

echo '<a

echo '<input

href="resultado.php?id='.$id.'" class="resultado">Ver Resultados</a>';


echo '<a href="index.php" class="volver">&larr; Volver</a>'; ?>
</form> </div> </body> </html>

<?php require('conexion.php'); if(!isset($_GET['id'])){

header('location:

index.php'); } $suma = 0; $id = $_GET['id']; $mod = @mysql_query("SELECT


SUM(valor) as valor FROM opciones WHERE id_encuesta = ".$id); while($result =
@mysql_fetch_object($mod)){

$suma = $result->valor; } ?>

<!DOCTYPE HTML> <html lang="en-US"> <head>


<title>Sistema de Encuestas</title>

<meta charset="UTF-8">
<link rel="stylesheet"

href="estilos.css"> </head> <body> <div class="wrap"> <form action=""


method="post"> <?php $aux = 0; $sql = "SELECT a.titulo as titulo, a.fecha as
fecha, b.id as id, b.nombre as nombre, b.valor as valor FROM encuestas a INNER
JOIN opciones b ON a.id = b.id_encuesta WHERE a.id = ".$id; $req =
@mysql_query($sql); while($result = @mysql_fetch_object($req)){
0){

if($aux ==

echo "<h1>".$result->titulo."</h1>";

echo "<ul class='votacion'>";

$aux = 1;

echo

'<li><div class="fl">'.$result->nombre.'</div><div class="fr">Votos: '.$result>valor.'</div>';

if($suma == 0){

style="width:0%;"></div></li>';

echo '<div class="barra cero"


}else{

echo '<div class="barra"

style="width:'.($result->valor*100/$suma).'%;">'.round($result>valor*100/$suma).'%</div></li>';

} } echo '</ul>';

echo '<span class="fr">Total: '.$suma.'</span>';

if(isset($aux)){
echo '<a

href="encuesta.php?id='.$id.'"" class="volver"> Volver</a>'; } ?> </ul>


</form> </div> </body> </html>

<?php require('conexion.php'); $cont = 0; $titulo = ''; if(isset($_POST['titulo'])){


$titulo = trim($_POST['titulo']); } // definimos $titulo para evitar errores, y
guardamos su valor por el ingresado. if(isset($_POST['enviar'])){
{

if($titulo != "")

$num = $_POST['opciones']; // este valor lo vamos a obtener de lo

que el usuario ingrese como numero de opciones al crear la encuesta


$fecha = date('Y-m-d');

$sql= "INSERT INTO `encuestas`

(`id` ,`titulo` ,`fecha`) VALUES (NULL , '$titulo', '$fecha');"; // si han ingresado si

quiera un titulo insertamos esta encuesta en la tabla

mysql_query($sql);

$sql = "SELECT MAX(id) as id FROM encuestas"; // ahora obtenemos el id de la


ultima fila,

// la que acabamos de ingresar,

// esto lo hacemos para poder asociarle las opciones


mysql_query($sql);

$req =

while($result =

mysql_fetch_object($req)){

$id_encuesta = $result->id;

// con el resultado obtenido hacemos un bucle y definimos los resultados como


id_encuesta.

$sql = "INSERT INTO `opciones`

(`id` ,`id_encuesta` ,`nombre` ,`valor`) VALUES "; // En esta parte estamos


armando un query SQL dinamico el cual sera modificado de acuerdo a lo que el
usuario ingrese en el formulario.

for($i=1;$i<=$num;$i++){

$opcnativa = trim($_POST['opc'.$i]); // obtenemos el nombre de cada opcion


indivudalmente.

if($opcnativa != ""){

$sql .= "(NULL , '$id_encuesta', '$opcnativa', '0')"; // el id de la opcion ira null para


que se ponga automaticamente, en id_encuesta pues ira el id de la encuesta que
acabamos de crear, en 'nombre' ira el nombre de la opcion y valor ira 0, puesto que
es una nueva opcion sin votos, esto se repetira con todas las opciones que el
usuario haya definido.
}

$cont++;
if($i == $num){

$sql .=

";"; // si es que se llega al final, termina la consulta

}else{

$sql .= ", "; // sino se pone una , y se continua.

if($cont < 2){ // si el usuario no definio ninguna opcion, se

elimina la encuesta recien creada, esto es poco probable que suceda ya que la
definicion de opciones la haremos con un select, y aqui se seleccionara el valor de 2
por defecto.

$sql = "DELETE FROM `encuestas` WHERE id =

".$id_encuesta;

echo "<div class='error'>Tiene que llevar por lo

menos 2 opciones.</div>";

}else{

header('location:

index.php'); // por ultimo si todo salio bien, redireccionamos al index para que el
usuario vea su encuesta recien creada.

mysql_query($sql); // y ejecutamos el query


<html lang="en-US"> <head>
Encuestas</title>

} } ?> <!DOCTYPE HTML>

<meta charset="UTF-8"> <title>Sistema de

<link rel="stylesheet" href="estilos.css"> </head>

<body> <div class="wrap">

<h1>Agregar Encuesta</h1>

action="" method="post">

<div class="fl titulo">

<label>Titulo:</label>

<form

<input name="titulo" type="text"

value="<?php echo $titulo; ?>" size="26"> </div>

<?php

// esto es

simplemente un formulario, pero aqui hacemos una condicion, identificamos si se


ha definido un numero de opciones, si es si hacemos un bucle, si es no mostramos

el select para definir un numero de opciones, como es obvio por defecto se


mostrara el bucle:

if(isset($_POST['opc'])){

$num =

$_POST['opciones']; // guardamos el valor del numero de opciones


for($i=1;$i<=$num;$i++){ // hacemos el bucle mostrando los campos
respectivos.

?>

$i; ?>: </label>


size="43">

<div class="cf">

<label>Opcion <?php echo

<input name="opc<?php echo $i; ?>" type="text"


</div>

<?php } // aqui termina el bucle ?> <div class="cf">

<input name="enviar" type="submit" value="Enviar">

<input

name="opciones" type="hidden" value="<?php echo $num; // le pasamos el valor


de num al proceso del formulario mediante un campo oculto. ?>">
name="cont" type="hidden" value="<?php echo cont; ?>">
else{ // sino se ha definido nro de opciones: ?>
<label>N de opciones:</label>

<input

</div> <?php }

<div class="fl">

<select name="opciones">

<?php for($i=2;$i<=20;$i++){ // esto es un loop simple, solo para ahorrarnos


trabajo, este select tendra de 2 a 20 opciones, si deseas cambiarlo lo puedes hacer
aqui. ?>

<option value="<?php echo $i; ?>"><?php echo $i; ?

></option>

<?php } ?>

<div class="cf">

<input name="opc" type="submit" value="Continuar">

</div>

</select>

</div>

<?php } // Sino se han definido opciones, que en vez de salir el boton

de Enviar, salga uno que sea Continuar. ?>


class="volver"> Volver</a>

</form>

<a href="index.php"
</div> </body> </html>