Foros del Web » Programando para Internet » PHP »

Form de votaciones PHP

Estas en el tema de Form de votaciones PHP en el foro de PHP en Foros del Web. Hola compañeros. Tengo una enorme duda. Nuestro prof. nos mandó a hacer un formulario de votaciones. El porcentaje de los votos que se esté haciendo ...
  #1 (permalink)  
Antiguo 25/05/2011, 23:58
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 0
Form de votaciones PHP

Hola compañeros.
Tengo una enorme duda. Nuestro prof. nos mandó a hacer un formulario de votaciones. El porcentaje de los votos que se esté haciendo por cada candidato, como el total de votos, sean guardados en un archivo de texto.
El código que tengo lo único que hace es guardarme el value del boton por el cual voté. He intentado poner las variables de cada porcentaje, pero no me muestra.

Espero puedan ayudarme, que debo cambiar en mi código:

<form action="#" method="post">
Vote por su candidato: <br/>
Ollanta Humala <input name="Respuesta" type="submit" value="Voto 1"> <br />
Keiko Fujimori <input name="Respuesta" type="submit" value="Voto 2"> <br />
Nulo/Viciado <input name="Respuesta" type="submit" value="Voto 3"> <br />

</form>
<?php

if($_POST){
$Respuesta =$_POST['Respuesta'];

$archivo = 'Archivos/resultados.txt';

// Abrimos el archivo como lectura
$lee_archivo = fopen($archivo, 'a+');


$Guardar = fputs($lee_archivo, $Respuesta.'|');


$lee_archivo = fopen($archivo, 'r');

// Exporamos el contenido del Archivo
$result_lectura = fread($lee_archivo, filesize ($archivo));


$contenido = explode("|", $result_lectura);

//Contador de votos
$total_rptas= count($contenido) - 1;

//Suma de votos
for($v = 0; $v < $total_rptas; ++$v){
if($contenido[$v] == "Voto 1"){
$Opcion_1++;
}

if($contenido[$v] == "Voto 2"){
$Opcion_2++;
}

if($contenido[$v] == "Voto 3"){
$Opcion_3++;
}
}

// Redondeamos las respuestas
$Cand1 = round(($Opcion_1 * 100) / $total_rptas);
$Cand2 = round(($Opcion_2 * 100) / $total_rptas);
$Cand3 = round(($Opcion_3 * 100) / $total_rptas);


echo 'Candidato 1: '.$Cand1.' %<br />';
echo 'Candidato 2: '.$Cand2.' %<br />';
echo 'Candidato 3: '.$Cand3.' %<br />';
echo 'Total de votos: '.$total_rptas;


}

?>

Como verán, si puedo mostrar el porcentaje de votos, y el total dentro de la misma página, pero más no guardar eso en el archivo de texto.
  #2 (permalink)  
Antiguo 26/05/2011, 03:12
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Form de votaciones PHP

¿Cuál es tu problema exactamente?

Pero bueno, un par de cosillas :)

Código PHP:
$Guardar fputs($lee_archivo$Respuesta.'|'); 
Veamos, fputs retorna false en caso de q no pueda escribirlo, o el numero de bytes en caso de q vaya bien... asíq ahí podrías poner un chivato parecido a este:

Código PHP:
if( fputs($lee_archivo$Respuesta.'|') ) echo 'Voto guardado<br>';
else echo 
'Error al guardar el voto<br>'
Así sabrás seguro si falla la función, o no.

Otra cosa:
Código PHP:
$lee_archivo fopen($archivo'a+'); 
El modo a+ es un append (se situa al final del fichero) y lo abre en modo escritura... y lectura. Asi pues, sólo necesitarias abrirlo una vez.. escribir, y luego situar el "puntero" (la posicion q marca por donde vas en el fichero) al principio de todo, para leerlo.

Si eso te parece muy complicado, ábrelo primero en modo 'a', escribes, y luego lo cierras... y luego lo vuelves a abrir en modo 'r' (lectura).

Otra cosa más:
Supongo q lo que quieres (no tengo ni idea), es q muestre un form, con tres opciones, y el porcentaje de votos de cada una (sin q haga falta votar para verlo, no?).

Un saludo, y ánimo
  #3 (permalink)  
Antiguo 29/05/2011, 08:10
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Form de votaciones PHP

Hola 'Eleazan', gracias por decirme esos puntos, los tendré muy en cuenta.
Lo que deseo es que esos porcentajes y el total de votos sean guardados en un archivo de texto, lo he intentado, pero no me funciona, tan sólo he podido guardar el "value" del boton por el cual hice click, sea 'Voto 1', 'Voto 2', eso guarda.
  #4 (permalink)  
Antiguo 29/05/2011, 08:37
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: Form de votaciones PHP

pues yo creo que eso es lo mejor, ¿para que metes porcentajes?

lo ideal es que esos calculos los hagas cuando extraigas los valores del txt.

seria algo asi como contar cada value, y compararlos para determinar los porcentajes.
  #5 (permalink)  
Antiguo 29/05/2011, 09:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Form de votaciones PHP

Lo sé, pero es que el profesor nos pidió eso, y vendrá en nuestro parcial. Y realmente no sé la manera de como mostrar los procentajes.
  #6 (permalink)  
Antiguo 29/05/2011, 09:13
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: Form de votaciones PHP

pero es que segun yo, los porcentajes son variables :S por lo que meterlos en tu archivo solo creara confusion.

yo haria esto

una vez tengo los datos al mostrar en pantalla resultados, contaria cada registro, los sumaria y ese seria 100%

luego los demás resultados haria las operaciones de comparacion respecto al total, y de ahi me daria sus porcentajes.
  #7 (permalink)  
Antiguo 29/05/2011, 15:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 15
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Form de votaciones PHP

Entonces, como haría eso dentro del código para guardarlo en el archivo del texto, recien he empezado con lo que es PHP. Espero puedan apoyarme.

Etiquetas: votacion
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 20:34.