Foros del Web » Programando para Internet » PHP »

Xq no me suma la encuesta??

Estas en el tema de Xq no me suma la encuesta?? en el foro de PHP en Foros del Web. He cogido un script php de una votación y lo he estado modificando para hacer un sistema de puntuación. El caso es que se tiene ...
  #1 (permalink)  
Antiguo 16/07/2008, 11:19
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Xq no me suma la encuesta??

He cogido un script php de una votación y lo he estado modificando para hacer un sistema de puntuación. El caso es que se tiene que votar dos fotos del 0 al 5, y luego se suman. El que alcance mayor puntuación gana. El problema es que me va sumando la puntuación de la primera foto, pero la puntuación de la segunda se resetea cada vez que vota alguien. Aver si alguien me puede echar una mano. Este es el código de los 3 archivos que uso.
index.php :
Código PHP:
            <?
include("config.php"); //incluimos el fichero config.php donde tenemos la configuraci&oacute;n del script
if(!file_exists($file)) //si el txt no existe...
    
{
    
$fp=fopen($file,"w"); //creamos un txt por si no t&aacute; creado
    
fputs($fp,"0\n0\n0\n0"); //le ponemos las respuestas desde 0
    
fclose($fp); //cerramos el txt
    
}


?>
            </span>
            <input name="En" type="radio" value="E1" />
            <? echo $c1;?>
            <input type="radio" name="En" value="E2" />
            <? echo $c2;?>
            <input type="radio" name="En" value="E3" />
            <? echo $c3;?>
            <input type="radio" name="En" value="E4" />
            <? echo $c4;?>
            <input type="radio" name="En" value="E5" />
            <? echo $c5;?></p>
          <p><span class="Estilo14">
            <?
include("config.php"); //incluimos el fichero config.php donde tenemos la configuraci&oacute;n del script
if(!file_exists($file2)) //si el txt no existe...
    
{
    
$fp=fopen($file2,"w"); //creamos un txt por si no t&aacute; creado
    
fputs($fp2,"0\n0\n0\n0"); //le ponemos las respuestas desde 0
    
fclose($fp2); //cerramos el txt
    
}


?>
config.php :
Código PHP:
<?
// CONFIGURACION DE LA ENCUESTA
$file="base.txt"//nombre del txt en el que guardaremos los resultados


//Escribe tus respuestas para la encuesta
$c1="1"//Encuesta nº 1
$c2="2"//Encuesta nº 2
$c3="3"//Encuesta nº 3
$c4="4"//Encuesta nº 4
$c5="5"//Encuesta nº 5
$file2="base2.txt";
$d1="1"//Encuesta nº 1
$d2="2"//Encuesta nº 2
$d3="3"//Encuesta nº 3
$d4="4"//Encuesta nº 4
$d5="5"//Encuesta nº 5
?>
enc_ver.php
Código PHP:
  <?
include("config.php"); //incluimos el fichero config.php donde tenemos la configuración del script

$file2=file($file); //creamos el array con las lineas del archivo
$lineas=count($file2);//contamos los elementos del array, es decir el total de lineas
$n1=$file2[0]; //asignamos a la variable el nº de votos(la línea 1 del txt)
$n2=$file2[1]; //asignamos a la variable el nº de votos(la línea 2 del txt)
$n3=$file2[2]; //asignamos a la variable el nº de votos(la línea 3 del txt)
$n4=$file2[3]; //asignamos a la variable el nº de votos(la línea 4 del txt)
$n5=$file2[4]; //asignamos a la variable el nº de votos(la línea 5 del txt)


if($En=="E1"//si la respuesta es la opción 1...
{$nn1=intval($n1)+1;}else{$nn1=intval($n1);} //entonces sumamos uno a $nn1, si no, se keda igual
if($En=="E2"//si la respuesta es la opción ...
{$nn2=intval($n2)+2;}else{$nn2=intval($n2);} //entonces sumamos uno a $nn2, si no, se keda igual
if($En=="E3"//si la respuesta es la opción 3...
{$nn3=intval($n3)+3;}else{$nn3=intval($n3);} //entonces sumamos uno a $nn3, si no, se keda igual
if($En=="E4"//si la respuesta es la opción 4...
{$nn4=intval($n4)+4;}else{$nn4=intval($n4);} //entonces sumamos uno a $nn4, si no, se keda igual
if($En=="E5"//si la respuesta es la opción 5...
{$nn5=intval($n5)+5;}else{$nn5=intval($n5);} //entonces sumamos uno a $nn4, si no, se keda igual

    
$fp=fopen($file,"w+"); //abrimos de nuevo el txt borrándolo todo
    
fwrite($fp,"$nn1\n$nn2\n$nn3\n$nn4\n$nn5"); //escribimos en el txt los votos.. en su respectiva línea. NOTA: \n <- cambia de línea ;)
    
fclose($fp); //cerramos el txt

$ntotal=$nn1+$nn2+$nn3+$nn4+$nn5//contamos el nº total de votos


?>
      </span>
        <span class="Estilo14 Estilo27 Estilo35">Votaciones totales </span><span class="Estilo26 Estilo33">: <strong><? echo $ntotal;?></strong></span>
        </p>
        &nbsp;</td>
    <td width="522" valign="top" background="fondowapo2.jpg"><p align="center"><span class="Estilo30">
      <?
include("config.php"); //incluimos el fichero config.php donde tenemos la configuración del script

$file2=file($file2); //creamos el array con las lineas del archivo
$lineas=count($file2);//contamos los elementos del array, es decir el total de lineas
$n1=$file2[0]; //asignamos a la variable el nº de votos(la línea 1 del txt)
$n2=$file2[1]; //asignamos a la variable el nº de votos(la línea 2 del txt)
$n3=$file2[2]; //asignamos a la variable el nº de votos(la línea 3 del txt)
$n4=$file2[3]; //asignamos a la variable el nº de votos(la línea 4 del txt)
$n5=$file2[4]; //asignamos a la variable el nº de votos(la línea 5 del txt)


if($Fn=="F1"//si la respuesta es la opción 1...
{$nn1=intval($n1)+1;}else{$nn1=intval($n1);} //entonces sumamos uno a $nn1, si no, se keda igual
if($Fn=="F2"//si la respuesta es la opción ...
{$nn2=intval($n2)+2;}else{$nn2=intval($n2);} //entonces sumamos uno a $nn2, si no, se keda igual
if($Fn=="F3"//si la respuesta es la opción 3...
{$nn3=intval($n3)+3;}else{$nn3=intval($n3);} //entonces sumamos uno a $nn3, si no, se keda igual
if($Fn=="F4"//si la respuesta es la opción 4...
{$nn4=intval($n4)+4;}else{$nn4=intval($n4);} //entonces sumamos uno a $nn4, si no, se keda igual
if($Fn=="F5"//si la respuesta es la opción 5...
{$nn5=intval($n5)+5;}else{$nn5=intval($n5);} //entonces sumamos uno a $nn4, si no, se keda igual

    
$fp=fopen($file2,"w+"); //abrimos de nuevo el txt borrándolo todo
    
fwrite($fp,"$nn1\n$nn2\n$nn3\n$nn4\n$nn5"); //escribimos en el txt los votos.. en su respectiva línea. NOTA: \n <- cambia de línea ;)
    
fclose($fp); //cerramos el txt

$ntotal=$nn1+$nn2+$nn3+$nn4+$nn5//contamos el nº total de votos


?>
  #2 (permalink)  
Antiguo 18/07/2008, 01:29
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Xq no me suma la encuesta??

Nadie me puede ayudarr??? Por más vueltas que le doy no consigo ver el fallo. Pleaseeee...
  #3 (permalink)  
Antiguo 18/07/2008, 01:55
Avatar de desendoll  
Fecha de Ingreso: mayo-2008
Mensajes: 340
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Xq no me suma la encuesta??

porque preguntais estas cosas tan "directas"?¿ si el código te falla, pues estas fallando, no es una duda referente a php o cualquier otra cosa. Es problema tuyo, la gente normal cobra para realizar script de cualquier tipo.

(lo siento, me levantado con el lado borde... xD)
__________________
Francesc Jimenez
  #4 (permalink)  
Antiguo 18/07/2008, 03:07
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Xq no me suma la encuesta??

Pues perdonad. No era mi intención hacer trabajar a nadie.

Gracias de todas formas.
  #5 (permalink)  
Antiguo 18/07/2008, 03:42
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Mensaje Respuesta: Xq no me suma la encuesta??

Hola,

En config:
$file2="base2.txt";

En index:
$file2=file($file);

Redefinida

$fp=fopen($file2,"w+");

Que es $file2 al usar fopen() ?
Revisa todas las variables duplicadas,


Saludos,

ps:

Los comentarios de código no son útiles de esa forma.

if($Fn=="F5") //si la respuesta es la opción 5...

escribiste en español, lo mismo que dice en inglés en lenguaje PHP.
preferiblemente:

// ***************
// La siguiente función hace ... etc.
// verifica todas las posibilidades... etc.
// ***************

Última edición por HackmanC; 18/07/2008 a las 03:54 Razón: cleanup
  #6 (permalink)  
Antiguo 18/07/2008, 03:56
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Xq no me suma la encuesta??

Lo hice por probar. Puse file2 por que la primera encuesta tiene file. Le he cambiado todos los $file2 por $file y sigue sin ir.
  #7 (permalink)  
Antiguo 18/07/2008, 04:04
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Mensaje Respuesta: Xq no me suma la encuesta??

Hola,

Cita:
Iniciado por hemilioguerra Ver Mensaje
Lo hice por probar. Puse file2 por que la primera encuesta tiene file. Le he cambiado todos los $file2 por $file y sigue sin ir.
Por que $file2 y $file son 2 cosas diferentes.
Y lo usas tanto para el nombre del archivo, como para el "array" con los datos.

$file="base.txt"

Tienen que haber 4 variables diferentes.

$arrayfile1 = file($nombre1...
$arrayfile2 = file($nombre2...
$nombrefile1 = "base1...
$nombrefile2 = "base2...

Saludos,

Última edición por HackmanC; 18/07/2008 a las 04:06 Razón: 2x1
  #8 (permalink)  
Antiguo 18/07/2008, 06:49
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Xq no me suma la encuesta??

Y dónde está la suma de las dos fotos? Por qué tienes separados los dos .txt? Tienes ahí mil cosas xD

Ahí va:

Código PHP:
<?php
if ($_GET['enviar']) { 

echo 
"<p><b>Gracias por votar</p>";
$file "base.txt";
if(!
file_exists($file)) { //si el txt no existe... 
    
$fp=fopen($file,"w"); //creamos un txt por si no t&aacute; creado
    
fputs($fp,"0\n0\n0"); //le ponemos las respuestas desde 0
    //1=1º foto; 2=2º foto; 3=votos
    
fclose($fp); //cerramos el txt

//incluimos el fichero config.php donde tenemos la configuración del script

$file=file($file); //creamos el array con las lineas del archivo 

$file[0] += $_GET['foto1']; //votos 1º fotos
$file[1] += $_GET['foto2']; //votos 2º foto
$file[2]++; //cantidad de votos

$fp=fopen($file,"w+"); //abrimos de nuevo el txt borrándolo todo
fwrite($fp,$file[0]."\n".$file[1]."\n".$file[2]); //escribimos en el txt los votos.. en su respectiva línea. NOTA: \n <- cambia de línea ;)
fclose($fp); //cerramos el txt 
}

?>

<form method="POST" action="">
<p><b>Foto 1</b> <select size="1" name="foto1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>&nbsp;&nbsp; <b>Foto 2 </b><select size="1" name="foto2">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select></p>
<p><input type="submit" value="Enviar" name="enviar"><input type="reset" value="Restablecer" name="B2"></p>
</form>
Ahora, si quieres saber cuál de los dos gana:

Código PHP:
<?php
$file 
"base.txt";
$file=file($file); //creamos el array con las lineas del archivo 

if ($file[0] > $file[1]) { $resultado "Gana la foto 1"; }
elseif (
$file[1] > $file[0]) { $resultado "Gana la foto 2"; }
else { 
$resultado "Empate"; }

$votos $file[2];
$puntuacion1 round($file[0]/$votos); //puntiacón de la foto 1
$puntuacion2 round($file[1]/$votos); //puntuación de la foto 2


?>
  #9 (permalink)  
Antiguo 18/07/2008, 08:08
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Xq no me suma la encuesta??

JoniJnm, he probado a meter el codigo que me pusiste y no me funciona. Al darle a votar me lleva una página en blanco.
Y con mi código inicial, (el de arriba de todo), sigo sin conseguir que me grabe en base2.txt el resultado de la segunda votación. No lo entiendo
  #10 (permalink)  
Antiguo 18/07/2008, 13:50
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Mensaje Respuesta: Xq no me suma la encuesta??

Hola,

Cita:
Iniciado por JoniJnm Ver Mensaje
Código:
<?php
if ($_GET['enviar']) { 

echo "<p><b>Gracias por votar</p>";
$file = "base.txt";
if(!file_exists($file)) { //si el txt no existe... 
    $fp=fopen($file,"w"); //creamos un txt por si no t&aacute; creado
    fputs($fp,"0\n0\n0"); //le ponemos las respuestas desde 0
	//1=1º foto; 2=2º foto; 3=votos
    fclose($fp); //cerramos el txt
} 
//incluimos el fichero config.php donde tenemos la configuración del script

$file=file($file); //creamos el array con las lineas del archivo 

$file[0] += $_GET['foto1']; //votos 1º fotos
$file[1] += $_GET['foto2']; //votos 2º foto
$file[2]++; //cantidad de votos

$fp=fopen($file,"w+"); //abrimos de nuevo el txt borrándolo todo
fwrite($fp,$file[0]."\n".$file[1]."\n".$file[2]); //escribimos en el txt los votos.. en su respectiva línea. NOTA: \n <- cambia de línea ;)
fclose($fp); //cerramos el txt 
}

?>

?>
Estimado amigo ... tiene el mismo problema que el programa inicial.

La primera línea en rojo asigna un string en $file. ($file = "base.txt";)
La segunda línea en rojo asigna un array en $file. ($file=file($file);)
La tercera línea intenta abrir el archivo con $file. Pero ya no contiene "base.txt".

Saludos,

ps: Hay muchos mas errores en los 2 programas.
Espero haber sido de alguna ayuda.

Última edición por HackmanC; 18/07/2008 a las 14:39 Razón: end
  #11 (permalink)  
Antiguo 18/07/2008, 13:54
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Xq no me suma la encuesta??

Solucionado. Muchas gracias a todos por ayudarme.
Un saludo
  #12 (permalink)  
Antiguo 18/07/2008, 19:37
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Xq no me suma la encuesta??

Cita:
Iniciado por hemilioguerra Ver Mensaje
Al darle a votar me lleva una página en blanco
Sólo tienes que poner en action="" el archivo:

<form method="POST" action="index.php"> O el que sea

Y para arreglar lo que dice el anterior, escribe: $file="base.txt";
Antes de:

Código PHP:
$fp=fopen($file,"w+"); //abrimos de nuevo el txt borrándolo todo
fwrite($fp,$file[0]."\n".$file[1]."\n".$file[2]); //escribimos en el txt los votos.. en su respectiva línea. NOTA: \n <- cambia de línea ;)
fclose($fp); //cerramos el txt 

  #13 (permalink)  
Antiguo 18/07/2008, 23:00
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Xq no me suma la encuesta??

Cita:
Iniciado por desendoll Ver Mensaje
porque preguntais estas cosas tan "directas"?¿ si el código te falla, pues estas fallando, no es una duda referente a php o cualquier otra cosa. Es problema tuyo, la gente normal cobra para realizar script de cualquier tipo.

(lo siento, me levantado con el lado borde... xD)


nadie te obliga a hacerlo HUEVON! te digo asi para no faltarte el respeto...
  #14 (permalink)  
Antiguo 19/07/2008, 05:17
Avatar de desendoll  
Fecha de Ingreso: mayo-2008
Mensajes: 340
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Xq no me suma la encuesta??

De que sirve que le pases todo el código echo¿? no aprenderá si no encuentra el mismo el fallo... y a parte, un foro pierde su interés cuando los post no son dudas concretas, si la gente se acostumbra a preguntar errores propios de código el foro perderá utilidad.
__________________
Francesc Jimenez
  #15 (permalink)  
Antiguo 19/07/2008, 06:49
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Xq no me suma la encuesta??

Haya paz... xD
  #16 (permalink)  
Antiguo 19/07/2008, 11:00
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Xq no me suma la encuesta??

Cita:
Iniciado por desendoll Ver Mensaje
De que sirve que le pases todo el código echo¿? no aprenderá si no encuentra el mismo el fallo... y a parte, un foro pierde su interés cuando los post no son dudas concretas, si la gente se acostumbra a preguntar errores propios de código el foro perderá utilidad.
y de que sirve el foro entonces?, vos no sos el dueño creo como para decir para que sirve o no un foro, si el pibe esta estancado en una duda que no puede resolver hay que darle una mano....para que para la proxima ya sepa resolverla...
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 02:37.