PHP - Encuesta. No suma 1, Suma 2 (URGE, Plis)

 
Vista:

Encuesta. No suma 1, Suma 2 (URGE, Plis)

Publicado por Rafaelo (37 intervenciones) el 31/05/2007 00:16:57
Hola:

Estoy desarrollando un formulario que contiene una encuesta en PHP y MySQL. El problema es que al elegir la opcion y luego votar se debería de sumar 1 voto a la opcion seleccionada, ya que uso los clasicos botones de Radio. PERO en ocasiones no suma 1 voto sino 2. Hasta ahora no he logrado descubrir si se sigue algun patrón para que se haga la suma de 2 votos y no 1.
Les dejo el codigo para ver si me pueden ayudar por favor.

Muchas Gracias.

<?php
include("conexion.php"); //me conecto a la BD
$result=mysql_query("SELECT * FROM pregs ORDER BY codigo DESC", $conexion);
$row=mysql_fetch_array($result);
$codigo=$row[0]; //Tomo el valor del codigo de la Pregunta actual.
$nomcookie="ACP".$codigo; //Creo un Nuevo nombre de Cookie

if(!isset($_COOKIE[$nomcookie])){
setcookie($nomcookie,0,time()+(3600*24*7));
}

if(isset($_POST['respuestas']))
{
/********** Actualizo la Cookie **********************/

if(isset($_COOKIE[$nomcookie]))
{
$_COOKIE[$nomcookie]++;
setcookie($nomcookie,$_COOKIE[$nomcookie],time()+(3600*24*7));

} else {
setcookie($nomcookie,1,time()+(3600*24*7));
}

/********** Si no se ha excedido el no. Max de Votaciones desde la misma PC **********/
if($_COOKIE[$nomcookie] > 400)
{
$aceptovoto = 0;
}
else //Si no ha llegado al no. Max de votaciones entonces...
{
$aceptovoto = 1;
}
}
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ENCUESTA VERSION 2.0</title>
<style type="text/css">
<!--
.Estilo1 {color: #000066}
.Estilo2 {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #990000;
font-size: 14px;
}
.fontrojo {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
font-size:14px;
color:#FF0000;
}
.Estilo3 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: 9px;
}
.Estilo9 {font-size: 10}
-->
</style>

<script language="JavaScript" type="text/javascript" >
function checaclick()
{
var i=0;
var checado=0;
for(i=0;i<document.forms['frmencuesta'].respuestas.length;i++)
{
if(document.forms['frmencuesta'].respuestas[i].checked)
checado=1;
}
if(checado==0)
{
alert('Debe de seleccionar una opcion');
return false;
}
else{document.forms['frmencuesta'].submit()}
}
</script>
</head>

<body>

<h3 align="center" class="Estilo1">ESTA ES UNA PAGINA WEB</h3>
<p class="Estilo2">Y COMO PARTE DE LA PAGINA VAMOS A AGREGAR UN CUADRITO EN LA QUE SALGA UN SISTEMA DE ENCUESTAS A VER COMO QUEDA.</p>
<table width="742" border="0" cellpadding="0" cellspacing="0"><!--DWLayoutTable-->
<tr>
<td width="146">BLA BLA BLA BLA BLA BLA BLA </td>
<td width="274">IMG</td>
<td width="322" rowspan="2" nowrap bgcolor="#FFFFB3">

<?php

/*SCRIPT PARA ENCUESTA*/
if(isset($_POST['respuestas']))
{
include "conexion.php";
/*************************************************************************/
/*************************************************************************/
$valor=0;
$codresp = $_POST['respuestas'];

/*EN ESTE SELECT TOMO EL NO DE VOTOS (valores) QUE TIENE LA OPCION SELECCIONADA*/

$result=mysql_query("SELECT valores FROM resps WHERE codresp=$codresp", $conexion);
$row1=mysql_fetch_assoc($result);
$valor=$row1["valores"];

/*SI SE IMPRIME EN PANTALLA $row1["valores"] SE PUEDE VER QUE EN OCACIONES DEVUELVE 1 MAS DE LO QUE TENIA ORIGINALMENTE */

mysql_free_result($result);
/********** Si no se ha excedido el no. Max de Votaciones desde la misma PC **********/
if($aceptovoto == 0)
{
echo '<p class="Estilo1">'."Ya ha votado antes, Gracias".'<p></p>';
}
else /*Si no ha llegado al no. Max de votaciones entonces...*/
{

/*ACTUALIZO LA TABLA DE RESULTADOS*/
/*INCLUSO, AL ACTUALIZAR valores=valores+1 SE ACTUALIZA EN 2 VOTOS MAS, NO EN 1 MAS.*/

mysql_query("UPDATE resps SET valores = valores+1 where codresp=$codresp", $conexion);
}
/***********************************************************/
/*HAGO CONSULTA PARA DIBUJAR LOS RESULTADOS*/
$result=mysql_query("SELECT SUM(valores) AS TOTAL FROM resps where codigo=$codigo", $conexion);
$total=mysql_fetch_array($result);
mysql_free_result($result);
$result=mysql_query("SELECT * FROM resps where codigo=$codigo", $conexion);
##intentando crear 2 veces el mismo arreglo
##$row=mysql_fetch_array($result) y while ($row=mysql_fetch_array($result))
##la parte comentada aqui abajo esta dentro del while
/*$row=mysql_fetch_array($result);
$porcien=(($row[3]/$total[0])*100);
$porcien=round($porcien);
//100% = 100
echo '<span class="Estilo3">'.$row[2].'<br>';
echo '<span class="Estilo4"><img src="35.gif" width='.$porcien.' height="9">'.' '.$porcien.' %<p>';*/
while ($row=mysql_fetch_array($result))
{
$porcien=(($row["valores"]/$total["TOTAL"])*100);
$porcien=round($porcien);
echo '<span class="Estilo3">'.$row["respuesta"].'<br>';
echo '<span class="Estilo4"><img src="35.gif" width='.$porcien.' height="9">'.' '.$porcien.' %<p>';
}

echo '<p>';
echo '<p class="Estilo1">'."Total de Votos Emitidos: ".$total[0].'<p></p>';


}else

{
/*include("votar.php");*/
/*************************************************************************/
/*************************************************************************/
$respuestas=0;
echo '<form id="frmencuesta" name="frmencuesta" method="post" action="encuesta.php?'.$respuestas.'" onsubmit="return checaclick()" >';


include "conexion.php";
$yavoto=1;
$result=mysql_query("SELECT * FROM pregs ORDER BY codigo DESC", $conexion);
$row=mysql_fetch_array($result);
$codigo=$row["codigo"];
$pregunta=$row["pregunta"];
echo '<p class="Estilo3">'.$pregunta;

$result=mysql_query("SELECT * FROM resps where codigo=$codigo", $conexion);
/*$row=mysql_fetch_array($result);

echo '<br class="Estilo3"><input name="respuestas" type="radio" id='.$row[1].' value='.$row[1].' />';
echo '<label for='.$row[1].'>'.$row[2].'</label></br>';*/
while ($row=mysql_fetch_array($result))
{
if($row["codigo"]==$codigo){
echo '<br class="Estilo3"><input name="respuestas" type="radio" id='.$row["codresp"].' value='.$row["codresp"].' />';
echo '<label for='.$row["codresp"].'>'.$row["respuesta"].'</label></br>';
}
}
echo '<br></br>';
echo '<label>';
echo '<input type="submit" name="Submit" value="Votar">';
echo '</label>';
echo '<a href="catpregs.php" class="Estilo9">Catálogo de Preguntas |</a><span class="Estilo9"><a href="catreps.php">Catálogo de Respuestas </a></span>';
echo '</form>';

/*************************************************************************/
/*************************************************************************/
}
?> </td>
</tr>
<tr>
<td>TEXTO</td>
<td>TEXTO CON IMAGEN </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td></tr>
<tr>
<td> </td>
<td> </td>
<td> </td></tr>
<tr>
<td> </td>
<td> </td>
<td> </td></tr>
<tr>
<td> </td>
<td> </td>
<td> </td></tr>
<tr>
<td> </td>
<td> </td>
<td> </td></tr>
<tr>
<td> </td>
<td> </td>
<td> </td></tr>
</table>
<p class="Estilo2"> </p>
<p>  </p>
</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
sin imagen de perfil

RE:Encuesta. No suma 1, Suma 2 (URGE, Plis)

Publicado por Rafaelo (2 intervenciones) el 13/06/2007 18:51:44
YA LO HE CORREGIDO.

GRACIAS.
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