Foros del Web » Programando para Internet » PHP »

Encuesta con grafica - error de resultado.

Estas en el tema de Encuesta con grafica - error de resultado. en el foro de PHP en Foros del Web. Hola foreros Salu2 Tengo una incognita acerca de unos scripts que estoy haciendo, los cuales hacen una encuesta web, ayudados de un archivo .txt el ...
  #1 (permalink)  
Antiguo 25/01/2008, 10:16
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Encuesta con grafica - error de resultado.

Hola foreros Salu2

Tengo una incognita acerca de unos scripts que estoy haciendo, los cuales hacen una encuesta web, ayudados de un archivo .txt el cual solo debe de tener 0,0,0 como primer valor y de ahi solo se incrementa. les dejo el codigo de las 2 paginas para poder decirles luego el error;

Esta es la primera llamada vote.php
Código PHP:
<?php
setcookie
("check"1);
if (isset(
$_POST['submit'])) {
 
setcookie("voted"1);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Encuesta de opinion</title>
</head>

<body>
<h1>Encuesta</h1>
<h3>Que opinas acerca del nuevo DVD de <b><i>Héroes del Silencio</i></b> - Tour 2007 "Edición limitada"</h3>
<form action=<?php echo $_SERVER['PHP_SELF']; ?> method="post">
<input type="radio" name="reply" value="0" />
Pues me parece perfecto, simplemente son geniales, soy su fan desde que se llamaban "Zumo de Vidrio".<br />
<input type="radio" name="reply" value="1" />
Yo esperaba mas de este DVD edicion "Especial", le faltaron los chones de un integante.<br />
<input type="radio" name="reply" value="2" />
Quienes son estos Vatos?
<br /><br />
<?php
if(empty($_POST['submit']) && empty($_COOKIE['voted'])) {
    
// Mostrar el boton Submit solo si el formulario todavia
    // no se ha enviado y el usuario no ha votado.
    
?>
    <input name="submit" type="submit" value="Vota!" />
    <?php
    
} else {
        echo 
"<p>Gracias por tu voto.</p>\n";
        
// Formulario enviado? Cookies activas? Pero todavia no se ha votado?
        
if(isset($_POST['reply']) && isset($_COOKIE['check']) && empty($_COOKIE['voted'])) {
        
// Guardar nombre de archivo en la variable
        
$file "results.txt";
        
$fp fopen($file"r+");
        
$vote fread($fpfilesize($file));
        
// Descomponer la string del archivo en array con coma como separador
        
$arr_vote explode(","$vote); // Explode convierte la string en array
        // Que valor se ha seleccionado en el formulario?
        // El recuento aumenta en 1!
        
$reply $_POST['reply'];
        
$arr_vote[$reply]++;
        
// Volver a montar la string
        
$vote implode(","$arr_vote); // implode vincula elementos de la array a string
        
rewind($fp);
        
// Escribir nueva string en el archivo
        
fputs($fp$vote);
        
fclose($fp);
    }
}
?>
</form>
<p>
[ <a href="results.php" target="_blank">Ver resultados de la encuesta</a> ]
</p>
</body>
</html>

Y esta es la segunda llamada results.php
Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Encuesta de Opinion</title>
</head>

<body>
<h1>Resultado de la encuesta</h1>
<?php
$file 
"results.txt";
$fp fopen($file"r");
$vote fread($fpfilesize($file));
fclose($fp);
// Se divide la string, se crea la array
$vote explode(","$vote);
// Cantidad total de votos
$allvotes $vote[0] + $vote[1] + $vote[2];
// Longitud maxima de la barra
$length 400;
// Cuota de la opcion 1 (valor indice 0)
$length0 $vote[0] * $length $allvotes;
// Cuota de la opcion 2 (valor indice 1)
$length1 $vote[1] * $length $allvotes;
// Cuota de la opcion 1 (valor indice 0)
$length2 $vote[2] * $length $allvotes;
// Redondeo de valores
$length0 round($length0);
$length1 round($length1);
$length2 round($length2);
// Calcular y redondear porcentaje de 0
$percent0 100 $vote[0] / $allvotes;
$percent0 round($percent00);
// Calcular y redondear porcentaje de 1
$percent1 100 * ($vote[1] / $allvotes);
$percent1 round($percent10);
// Calcular y redondear porcentaje de 2
$percent2 100 $vote[2] / $allvotes);
$percent2 round($percent20);
// Mostrar solo para fines de prueba:
// Echo "length0 $length1 $length2";
?>
<p>Total de votos: <?php echo $allvotes?></p>
<h3>Resultados</h3>
<table border="0">
<tr>
<td><b>Opcion 1</b></td>
<td>&nbsp;</td><td width="<?php echo $length0?>" bgcolor="red">&nbsp;</td>
<td>&nbsp;<?php echo "$percent0%"?>&nbsp;(<i><?php echo $vote[0]; ?></i>)</td>
</tr>
<tr>
<td><b>Opcion 2</b></td>
<td>&nbsp;</td><td width="<?php echo $length1?>" bgcolor="green">&nbsp;</td>
<td>&nbsp;<?php echo "$percent1%"?>&nbsp;(<i><?php echo $vote[1]; ?></i>)</td>
</tr>
<tr>
<td><b>Opcion 3</b></td>
<td>&nbsp;</td><td width="<?php echo $length2?>" bgcolor="black">&nbsp;</td>
<td>&nbsp;<?php echo "$percent2%"?>&nbsp;(<i><?php echo $vote[2]; ?></i>)</td>
</tr>
</table>
</body>
</html>

NOTA: el archivo .txt se debe de llamar results.txt y como es de entenderse encontrarse en la misma carpeta q estos 2 anteriores.


Bien el problema q tengo es q todo corre bien pero en results al momento de mostrar la grafica las 3 lineas me aparecen llenas completamente aunque tienen los valores diferentes. la verdad no se cual es el error. alguien lo ve?

de antemano muchas gracais foreros.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:03.