Foros del Web » Programando para Internet » PHP »

Problemas con encuesta...

Estas en el tema de Problemas con encuesta... en el foro de PHP en Foros del Web. Compañeros(as) Antes que todo desde ya se les agradece por cualquier ayuda o sugerencia. Desde ya les digo que con mucho esfuerzo he logrado hacer ...
  #1 (permalink)  
Antiguo 22/07/2008, 16:41
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Problemas con encuesta...

Compañeros(as)

Antes que todo desde ya se les agradece por cualquier ayuda o sugerencia.

Desde ya les digo que con mucho esfuerzo he logrado hacer esto, quizas no es mucho.

Les explico, tengo los siguientes archivos.

index_encuesta.php
Al entrar esta página tengo dos opciones una que me avisa si tengo encuesta a votar sino tengo me aparece un link para crear la encuesta.



Al hacer un clic en el enlace agregar encuesta me aparece esta pantalla. Donde agrego la pregunta con sus correspondientes opciones.



Si la encuesta ya esta creada, aparece de esta forma.



Y me la guarda en la base de datos de la sig. Forma.



Bueno eso es lo que tengo ahora si se pueden dar cuenta tengo en la tabla encuesta 5 campos el id, la pregunta en si de la encuesta, el numero de votos que es el total, las opciones de la pregunta y por ultimo las respuestas de los votos que corresponden a cada una de las opciones.

El tema es que hasta aqui llego al apretar el boton votar llama a votar.php donde el unico codigo que tengo es este.
Código PHP:
include("../conec.inc.php");
$conexBD Conectarse(); 
Entonces quiero rescatar desde el formulario anterior las votaciones de los usuarios si su opcion fue si, no o indiferente...y no se como hacerlo e investigado y tan soo he llegado a un funcion que se llama explode o algo similar.

les dejo de todas formas el codigo del formulario...quizas ahii pueden sugerirme algo mas optimo o algo estoy haciendo mal.

Código PHP:
<?php
//require('../conec.inc.php');
include("../conec.inc.php");
$conexBD Conectarse();
//consultamos si hay datos en la tabla
$cons_cant=mysql_query("SELECT COUNT(*) AS nroenc FROM encuesta",$conexBD);
$cant=mysql_fetch_array($cons_cant);
if(
$cant['nroenc']==0)
{

echo 
"<p class=\"Titulos_cabeceras2\">NO HAY ENCUESTA</p>
<a href=\"admin.php\"><center>Agregar encuesta</center></a>"
;

}else{
    
//consultamos la encuesta actual
    
$cons_enc_act=mysql_query("SELECT * FROM encuesta",$conexBD);
    
$datos=mysql_fetch_array($cons_enc_act);
    
//obtenemos los datos de la tabla
    
$id=$datos['idenc'];
    
$preg=$datos['pregunta'];
    
$opc=$datos['opciones'];
    
//especificamos un formulario
    
echo "    
    <form name=\"frmEncuesta\" method=\"post\" action=\"votar.php\">
    <input type=\"hidden\" name=\"cod\" value=\""
.$id."\" /> \n";
    
//especificamos opciones
    //NOTA, usamos explode para separar cada item por las comas
    
$opciones explode(",",$opc);
    
$i=0;
    
//contamos cuantas partes tiene opciones
    
$tot_elems=count($opciones);
    echo 
$preg;
    while(
$i<=$tot_elems-1){
        
$j=$i+1;
        
//note que $opciones es un array y visualizamos sus elementos 
        //mediante esta forma: elemento=$opciones[ubicacion_integer]
        
echo "    
        <p>
            <input type=\"radio\" name=\"opcion\" value=\""
.$j."\" id=\"opcion".$j."\" /> ".trim($opciones[$i])."
        </p> \n"
;
        
$i++;
    }
    echo 
"    
    <input type=\"hidden\" name=\"nroopciones\" value=\""
.$i."\" />";
         
    echo 
"    
    <p style=\"text-align:left;\">
        <input class=\"boton\" type=\"submit\" value=\"Votar\" />
    </p>
    <br>
    <p style=\text-alifn:left;\><a href=\"votar.php\">Ver Resultados</a></p>
    </form>
    </div> \n"
;
}
?>
Bueno compañeros(as) de verdad lo necesito no me he quedao para que me hagan las cosas creo necesitar algun empujon para solucionar esto, la idea mis es aprender.

Bueno nuevamente gracias por su tiempo.

Saludos desde CHILE.
  #2 (permalink)  
Antiguo 22/07/2008, 22:51
Avatar de fhonorato  
Fecha de Ingreso: julio-2008
Ubicación: Talca, Chile
Mensajes: 36
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Problemas con encuesta...favor ayuda la necesito

se supone que la info se va a votar.php ... ahi recibes la informacion en las var $_Get

por ejemplo si tiene en el formulario un campo que se llame nombre y alguien pone juan .. en votar.php una vez que se reciban los datos la variable $_GET["nombre"] valdra "juan" ...

en tu caso sería $_GET["opciones"]


creo que esa era tu duda o no??.. si no es asi pregunta denuevo...

saludos, compatriota ^^
  #3 (permalink)  
Antiguo 23/07/2008, 00:55
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Problemas con encuesta...

Una corrección a fhonorato:
En los atributos del tag <form> pones 'method="post"', por lo que tus datos no llegaran en el array superglobal $_GET, sino en $_POST, un array similar.

Saludos.
  #4 (permalink)  
Antiguo 24/07/2008, 08:42
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Problemas con encuesta...

Antes que todo gracias por sus comentarios, no tuve tiempo para responder antes ya que tenia que hacer las pruebas necesarias a sus respectivas sugerencias antes de volver a la carga...bueno les cuento que la encuesta me funciona me permite crear una encuesta asignar sus correspondientes opciones de respuesta y asu vez que el usuario entre y vote me los suma y hace el porcentaje correspondiente.

Pero ahora el tema es que nose como validar que el usario no vote mas de una vez... para ello he estado probando segun mi logica las siguientes opciones, les cuento lo que hice.

Cree un nuevo campo en la tabla socios un nuevo campo llamado opcion_voto entonces cuando el usuario vota le hace un Update a la tabla ingresando la opcion de su voto que puede ser opcion 1,2,3 todo depende de cuantas opciones tenga la encuesta como respuestas posibles....eso lo hace correctamente ingresa la opcion.

En el caso que el usuario no haya votado ese campo (opcion_voto) es null o vacio.

Entonces cuando el usuario se auntentifica para entrar a su espacio reservado y poder votar crea sus correspondientes sessiones con su nombre de usuario, cargo, anexo, email, etc esto lo hago de la siguiente forma.

Código PHP:
$query=mysql_query("SELECT * FROM socios WHERE nombre_usuario='$NombreUsuario' and pass='$Clave'",$conexBD)or die("Error en la consulta, MySQL dice: ".mysql_error());

$total_encontrados mysql_num_rows($query);

if (
$total_encontrados<>0)
{
    
$array_datos_usuario=mysql_fetch_array($query);

$_SESSION['nombre_socio']=$array_datos_usuario[nombre];                                   
$_SESSION['cargo']=$array_datos_usuario[cargo];                    
$_SESSION['anexo']=$array_datos_usuario[anexo];                    
$_SESSION['email']=$array_datos_usuario[email];    
$_SESSION['categoria']=$array_datos_usuario[categoria];
$_SESSION['voto_encuesta']=$array_datos_usuario[opcion_voto];        
header("Location: espacio_socio.php?".SID); 
exit; 
}
else
{
    
header("Location: ../index.php"); 
    exit;     

Bueno entonces cuando el usuario llega a la encuesta y va a votar y presiona el boton se va a votar.php aca es donde registro el voto en la tabla encuesta y ademas agrego su alternativa en la tabla socios precisamente se modifica el campo opcion_voto.

En votar.php lo primero que tengo antes de cualquier codigo es esto:

Código PHP:
<?php
//Inicio la sesion 
session_start();   
//compruebo que el usuario este autentificado 
header("Cache-control:private");  
if(
$_SESSION['rut']=="")  
{  
 
header("Location: ../index.php");  
 exit;  
}  
?>
Luego pregunto por la $_SESSION['voto_encuesta'] y hago esto.

$ya_voto=$_SESSION['voto_encuesta'];

if(isset($ya_voto))
{
....codigo para votar ingresar su voto a la tabla encuesta
.....y para ingresar la opcion votada por parte del usuario
.....a la tabla socios especificamente campo opcion_voto
}
else
{
Usted ya ha votado
}

y lo e intentado con isset con empty y no me funciona...de esta forma tambien pregunte en el if

if (!isset($_SESSION['voto_encuesta']))

Al guna idea de como puedo hacerlo quizas estoy mal en la logica de preguntar o el codigo ... he estado parte del dia de ayer haciendo mis pruebas para no molestarlos pero estoy cediendo de todas formas seguire intentando.

Bueno espero haber explicado y que me puedan guiar explicar o sugerir cual o cuales son mis errores.

Desde ya agradecido.

Saludos desde CHILE.
  #5 (permalink)  
Antiguo 24/07/2008, 09:06
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problemas con encuesta...

Que tal juan007, según veo si el valor de opcion_voto es vacío o nulo es porque el usuario no ha votado, pues verifica que la variable no este vacia.
Código PHP:
session_start();
$ya_voto $_SESSION['voto_encuesta'];
if(empty(
$ya_voto)){
....
codigo para votar ingresar su voto a la tabla encuesta
.....y para ingresar la opcion votada por parte del usuario
.....a la tabla socios especificamente campo opcion_voto}
else{
 echo 
"Usted ya ha votado"; } 

Saludos.
  #6 (permalink)  
Antiguo 25/07/2008, 11:25
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Problemas con encuesta...

Carlojas me ha funcionado a la prefeccion gracias tambien a eZakto y fhonorato.

Pero me queda un temita por resolver como lo hago para graficar esta encuesta osea los votos,asi como un grafico de barras segun lo poco y nada que he leido es con la libreria GD.

Bueno si me pueden guiar en esto ... seria ideal.

Gracias nuevamente.
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 16:12.