PHP - Encuesta

 
Vista:

Encuesta

Publicado por makera (3 intervenciones) el 07/04/2008 08:31:26
Estoy programando un sistema gestor de encuestas. Tengo estos archivos en localhost mediante xampp. El problema es que para empezar la variable titulo no se guarda correctamente. He mirado en la BD y se guarda el ID y la Fecha correctamente. Lo que no se guarda es el titulo de la encuesta. Si de algo sirve la idea la saque de http://www.programacion.net/php/articulo/encuestas_gd/
Donde podreis ver las tablas utilizadas.

<html>
<head>
<title>enc1.php</title>
</head>
<body>
<p>CREAR NUEVA ENCUESTA (Archivo ENC1.PHP)</p>
<form name="form1" method="post" action="enc2.php">
<p>Titulo de la encuesta:
<input type="text" name="titulo" >
</p>
<p>Número de respuestas:
<input type="text" name="texto">
</p>
<p>
<input type="submit" name="Submit" value="Enviar">
</p>
</form>
</body>
</html>

<html>
<head>
<title>configuracion.inc.php</title>
</head>

<body>
<?
$host="localhost";
$usuario="root";
$password="micontraseña";
$db="smibasededatos";
?>
</body>
</html>

<html>
<head>
<title>enc2.php</title>
</head>

<body>

<form action="enc3.php" method="post">
<table border="0">
<?php
for($i=1;$i<=$respuestas;$i++){
?>
<tr>
<td>respuesta <?php echo $i; ?></td>
<td><input name="p<?php echo $i;?>" type="text" size="50" maxlength="50"></td>
</tr>
<?php } ?>
</table>
<input type="submit" name="Submit" value="Enviar"></p>
<input name="titulo" type="hidden" value="<?php echo $titulo;?>">
<input type="hidden" name="respuestas" value="<?php echo $respuestas;?>">
</form>

</body>
</html>

<html>
<head>
<title>enc3.php</title>
</head>

<body>

<?php

//Conectamos con la base de datos
require('configuracion.inc.php');
$enlace = mysql_connect($host, $usuario, $password);
mysql_select_db($db,$enlace);

//Obtenemos la fecha del sistema
$fecha = time();

//Insertamos la nueva encuesta
$sql = "INSERT INTO encuestas (titulo, fecha) VALUES ('$titulo', '$fecha') ";
$sql = mysql_query($sql);

//Ahora obtenemos el ID de la encuesta que acabamos de insertar
$sql = "SELECT id FROM encuestas ORDER BY fecha DESC LIMIT 0,1";
$sql = mysql_query($sql);
while($row = mysql_fetch_array($sql)){
$id=$row["id"];
}

//Recorremos todas las preguntas
for($i=1; $i<=$respuestas; $i++){

//Obtenemos el texto de la pregunta
$preg = p.$i;
$texto = $$preg;

//Y lo insertamos
$sql = "INSERT INTO respuestas(texto, votos, idenc) VALUES("$texto", 0, $id)";
$sql = mysql_query($sql);
}
?>
<div align="center"><strong>Felicidades!! Si todo ha ido bien, tu encuesta ha
sido insertada!! </strong> </div>

</body>
</html>

<html>
<head>
<title>encuesta.php</title>
</head>

<body>

<?php

//Conectamos con la base de datos
require('configuracion.inc.php');
$enlace=mysql_connect($host,$usuario,$password);
mysql_select_db($db,$enlace);

//Seleccionamos la informacion de la última encuesta insertada
$consulta="SELECT * FROM encuestas ORDER BY fecha DESC LIMIT 0,1";
$consulta=mysql_query($consulta,$enlace);
while ($row=mysql_fetch_array($consulta))
{
$titulo=$row["titulo"];
$fecha=$row["fecha"];
$id=$row["id"];
}
?>

<form action="votar.php" method="post" name="form1">
<table width="350" border="1">
<tr>
<td colspan="2"><strong>Titulo</strong>:<?php echo $titulo;?>
<input type="hidden" name="id" value="<?php echo $id;?>"></td>
</tr>

<?php
$sql="SELECT texto,id FROM respuestas WHERE idenc="$id"";
$sql=mysql_query($sql,$enlace);
while($row=mysql_fetch_array($sql))
{
$texto=$row["texto"];
$idres=$row["id"];
?>
<tr>
<td width="51"><input type="radio" name="opcion" value="<?php echo $idres;?>"></td>
<td width="283"><?php echo $texto;?></td>
</tr>
<?php } ?>
<tr>
<td><input type="submit" name="Submit" value="Enviar"></td>
<td>Esta encuesta está desde el <?php echo date('d-m-y',$fecha);?></td>
</tr>
<td colspan="2"><a href="votar.php">Ver resultados</a></td>
</tr>
</table>
</form>
</body>
</html>

<html>
<head>
<title>votar.php</title>
</head>

<body>
<?
require('configuracion.inc.php');
$enlace = mysql_connect($host, $usuario, $password);
mysql_select_db($db,$enlace);

//Obtenemos el titulo de la encuesta
$consulta = "SELECT titulo FROM encuestas ORDER BY fecha DESC LIMIT 1,0";
$consulta = mysql_query($consulta,$enlace);
$lado=mysql_num_rows($consulta);
while($row = mysql_fetch_array($consulta)){
$titulo= $row['titulo'];
}

//Obtenemos el numero actual de votos para la opción elegida
//Comprobamos si $opcion no está vacío porque posteriormente este mismo
//fichero lo utilizaremos para ver resultados sin tener que votar necesariamente
if(!empty($opcion)) {
$consulta = "SELECT votos FROM respuestas WHERE id=$opcion";
$consulta = mysql_query($consulta,$enlace);
$lado=mysql_num_rows($consulta);
while($row = mysql_fetch_array($consulta)){
$votos= $row['votos'];
}

//Incrementamos en uno los votos totales
$votos = $votos + 1;
//Y actualizamos la base de datos
$consulta = "UPDATE respuestas SET votos = $votos WHERE id=$opcion";
mysql_query($consulta,$enlace);
}
//<img src="dgrafica.php">
?>

</body>
</html>

<html>

<head>
<title>mostrar</title>

</head>

<body>
<script language="vbscript">
msgbox "a"
Dim wexcel,wlibro,whoja,wobjeto
msgbox "zz"
set wobjeto=createobject("scripting.filesystemobject")
set wexcel= CreateObject("Excel.Application")
msgbox "b"
wexcel.visible=true
set wlibro=wexcel.application.workbooks.open("excel1.xls")
msgbox "c"
set whoja = wlibro.sheets ("Hoja1")
whoja.cells (1,1) = "Nena"
msgbox "d"

</script>
<p>
<?php

//Conectamos con la base de datos
require('configuracion.inc.php');
$enlace=mysql_connect($host,$usuario,$password);
mysql_select_db($db,$enlace);


$sql="SELECT texto,votos FROM respuestas,encuestas WHERE respuestas.idenc=encuestas.id and encuestas.id ORDER BY fecha DESC";

$sql=mysql_query($sql,$enlace);
?>
<font color="#0000FF" size="4" style="font:Tahoma"> RESULTADOS DE LA ENCUESTA </font></p>
<p> </p>
<table border="0" bgcolor="#CCCCCC"><th bgcolor="#CCFF66"> RESPUESTAS  </th>
<th bgcolor="#CCFF66">VOTOS  </th>
<?php
while($row=mysql_fetch_array($sql))
{


$titulo=$row['texto'];
$votos=$row['votos'];?>
<tr><td bgcolor="#CCFF99"><?php echo $titulo;?></td>
<td bgcolor="#CCFF99"><?php echo $votos;?></td>
</tr>
<?php

}?> </table>

</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Encuesta

Publicado por insignia (1 intervención) el 08/04/2008 12:01:34
Es de suponer que tengas el register_globals a off, obten los valores de las variables mediante $_POST o $_GET, es decir si por ejemplo envías un campo titulo mediante un formulario post, deberás atacar a la variable mediante $_POST['titulo']

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Encuesta

Publicado por MAKERA (3 intervenciones) el 08/04/2008 12:21:51
Bien, pero en mi codigo, esque no comprendo muy bien, donde tendria que cambiar por $_POST['titulo'] en que archivo o en que parte. o si hay que añadir algo, como igualo eso. no comprendo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar