Ver Mensaje Individual
  #18 (permalink)  
Antiguo 25/08/2006, 14:07
Avatar de Bullet
Bullet
 
Fecha de Ingreso: agosto-2005
Ubicación: Margarita, Venezuela
Mensajes: 235
Antigüedad: 18 años, 8 meses
Puntos: 1
Que mas panas aki estoy otra ves con el royo de las encuestas, decidi trabajar mejor con archivos de texto, y hasta ahora me han salido bien, pero ahora el detalle que tngo es que cuando vacio los archivos y comienzo la encuesta de nuevo, la primera vez q voto me sale el siguiente error:

Código HTML:
Warning: fread() [function.fread]: Length parameter must be greater than 0 in C:\AppServ\www\nuevo\encuesta.php on line 6

Warning: fread() [function.fread]: Length parameter must be greater than 0 in C:\AppServ\www\nuevo\encuesta.php on line 9
Esto solo pasa la primera vez que el usuario va a votar, luego q vota por segunda vez en adelante desaparece el error y contabiliza, suma y muestra los resultados bien. EL cogido del script es este:

Código PHP:
<?php
    
//cargo el numero de respuestas de un fichero de texto
    
$f=fopen("encuesta.txt","r");
    -->
$todas=fread($f,filesize("encuesta.txt"));
    
$respuestas=explode(",",$todas);
    
$g=fopen("encuesta2.txt","r");
    -->
$todas2=fread($g,filesize("encuesta2.txt"));    
             
$respuestas2=explode(",",$todas2);
    
fclose($f);
    
fclose($g);

    if (
$respuesta) {
        
//incremento la respuesta y la guardo en el fichero
           
$respuestas[$respuesta-1]++;
        
$f=fopen("encuesta.txt","w");
        
$todas=$respuestas[0].",".$respuestas[1].",".$respuestas[2].",".$respuestas[3];
        
fwrite($f,$todas,strlen($todas));
        
fclose($f);    
    }       
    if (
$respuesta2) {
        
//incremento la respuesta y la guardo en el fichero
           
$respuestas2[$respuesta2-1]++;
        
$g=fopen("encuesta2.txt","w");
        
$todas2=$respuestas2[0].",".$respuestas2[1].",".$respuestas2[2].",".$respuestas2[3];
        
fwrite($g,$todas2,strlen($todas2));
        
fclose($g);    
    }   
    
$total=$respuestas[0]+$respuestas[1]+$respuestas[2]+$respuestas[3];
    
$total2=$respuestas2[0]+$respuestas2[1]+$respuestas2[2]+$respuestas2[3];
    if(
$total==0) {
        
$porcentaje[0]=0;
        
$porcentaje[1]=0;
        
$porcentaje[2]=0;
        
$porcentaje[3]=0;
        } else {
        
$porcentaje[0]=sprintf("%1.2f",(($respuestas[0]/$total)*100));
        
$porcentaje[1]=sprintf("%1.2f",(($respuestas[1]/$total)*100));
        
$porcentaje[2]=sprintf("%1.2f",(($respuestas[2]/$total)*100));
        
$porcentaje[3]=sprintf("%1.2f",(($respuestas[3]/$total)*100));
        }
    if(
$total2==0) {
        
$porcentaje2[0]=0;
        
$porcentaje2[1]=0;
        
$porcentaje2[2]=0;
        
$porcentaje2[3]=0;
        } else {
        
$porcentaje2[0]=sprintf("%1.2f",(($respuestas2[0]/$total2)*100));
        
$porcentaje2[1]=sprintf("%1.2f",(($respuestas2[1]/$total2)*100));
        
$porcentaje2[2]=sprintf("%1.2f",(($respuestas2[2]/$total2)*100));
        
$porcentaje2[3]=sprintf("%1.2f",(($respuestas2[3]/$total2)*100));
        }
?>

el codigo q puse es el que hace todos los calculos, porq el resto lo que hace es mostrar resultados. Las lineas q tienen las flechas son las que me lanzan el error... Espero que me puedan ayudar!!

Última edición por Bullet; 25/08/2006 a las 14:15