Foros del Web » Programando para Internet » PHP »

Duda con encuesta

Estas en el tema de Duda con encuesta en el foro de PHP en Foros del Web. Hola a todos! Hice un sistema de encuestas el cual funciona perfectamente. Lo que deseo hacer ahora es que, si el usuario esta logeado se ...
  #1 (permalink)  
Antiguo 26/12/2010, 09:57
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Duda con encuesta

Hola a todos!

Hice un sistema de encuestas el cual funciona perfectamente. Lo que deseo hacer ahora es que, si el usuario esta logeado se le permita votar, si ya voto que se muestren los resultados, y si no esta logeado también que se muestren los resultados. Hice lo siguiente:

Código PHP:
Ver original
  1. <?php
  2. conectar();
  3.  
  4. // Primero selecciono la más reciente encuesta y guardo el id de esta en una variable
  5.  
  6. $sql = "select * from encuesta order by encid DESC limit 0,1";
  7. $resultado = mysql_query($sql,$conectar) or die (mysql_error());
  8. $encuesta = mysql_fetch_array($resultado);
  9.  
  10. $encid = $encuesta['encid'];
  11.  
  12.  
  13. // Si el usuario esta registrado, guardo su User ID en una variable
  14.  
  15. if ($user->data['is_registered']) {
  16. $userid = $user ->data['user_id'];
  17.  
  18.  
  19. // Consulto si el User ID se encuentra dentro de los votos realizados en esa encuesta
  20.  
  21. $consulta = "select * from votos where encid = '.$encid.' AND userid IN '.$userid.'";
  22. $resultado2 = mysql_query($consulta,$conectar) or die (mysql_error());
  23. $usuario = mysql_fetch_array($resultado2);
  24.  
  25.  
  26. // Finalmente declaro las condiciones
  27.  
  28. if($usuario[''] != '') {
  29. echo 'usted ya voto';
  30. }
  31. else{
  32.  
  33. echo 'usted puede votar';
  34. }
  35. } else {
  36. echo 'debes logearte para votar';
  37. }
  38. ?>

Lo cual me devuelve lo siguiente:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''.135.'' at line 1


La línea 135 es el query de esta parte:

Código PHP:
Ver original
  1. $sql = "select * from encuesta order by encid DESC limit 0,1";
  2. $resultado = mysql_query($sql,$conectar) or die (mysql_error());
  3. $encuesta = mysql_fetch_array($resultado);


Espero que puedan ayudarme :)
  #2 (permalink)  
Antiguo 26/12/2010, 10:10
 
Fecha de Ingreso: noviembre-2010
Ubicación: Venezuela - Caracas
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Duda con encuesta

Usa la variable $_SESSION, siempre ha tenido mucha utilidad, ya sea para enviar datos a mysql o simplemente verificar...

Y sobre el codigo del SQL, el problema creo que es el *, eliminalo y prueba aver, yo solo veo ese * cuando ejecuto consultas desde el PHPMYADMIN, desde el PHP yo se las elimino...

De tal manera que el codigo quedaria asi:

Código PHP:
Ver original
  1. $sql = "select FROM encuesta ORDER BY encid DESC LIMIT 0,1";
  2. $resultado = mysql_query($sql,$conectar) or die (mysql_error());
  3. $encuesta = mysql_fetch_array($resultado);
__________________
SI SABES PHP Y MYSQL LO PUEDES TODO =)
  #3 (permalink)  
Antiguo 26/12/2010, 10:18
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Duda con encuesta

Gracias por tu respuesta :)

Hice el cambio que me dijiste y ahora me da el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM encuesta ORDER BY encid DESC LIMIT 0,1' at line 1

Respecto a tu recomendación, estoy usando el login de phpBB, la sesión se declara dentro de una variable y es la que termino utilizando :)
  #4 (permalink)  
Antiguo 26/12/2010, 10:30
 
Fecha de Ingreso: noviembre-2010
Ubicación: Venezuela - Caracas
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Duda con encuesta

Primero una pregunta... Que version de SQL Usas?


2. Aqui te dejo otro intento ;)

Código PHP:
Ver original
  1. $sql = "SELECT FROM `AQUI EL NOMBRE DE TU TABLA`
  2. ORDER BY `NOMBRE DE TABLA`.`encid` DESC
  3. LIMIT 0 , 1";
  4. $resultado = mysql_query($sql,$conectar) or die (mysql_error());
  5. $encuesta = mysql_fetch_array($resultado);


Intentalo con ese y me cuentas, ya yo lo probe en mi web y funciona, si no es por tu version de MYSQL
__________________
SI SABES PHP Y MYSQL LO PUEDES TODO =)
  #5 (permalink)  
Antiguo 26/12/2010, 10:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Duda con encuesta

Me sale lo mismo:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `encuesta` ORDER BY `encuesta`.`encid` DESC LIMIT 0 , 1' at line 1

Lo puse de la siguiente manera:

Código PHP:
Ver original
  1. $sql = "SELECT FROM `encuesta`
  2. ORDER BY `encuesta`.`encid` DESC
  3. LIMIT 0 , 1";

La versión de mysql es 5.1.52

Gracias nuevamente :)
______________

EDITADO:

Ya logré solucionarlo. El problema estaba en la segunda consulta, si a alguien le sirve le dejo el código como me quedo:

Código PHP:
Ver original
  1. <?php
  2. conectar();
  3.  
  4. $sql = 'select * from encuesta order by encid DESC LIMIT 0,1';
  5. $resultado = mysql_query($sql,$conectar) or die (mysql_error());
  6. $encuesta = mysql_fetch_array($resultado);
  7.  
  8. $encid = $encuesta['encid'];
  9.  
  10. mysql_free_result($resultado);
  11.  
  12. if ($user->data['is_registered']) {
  13.  
  14. $userid = $user->data['user_id'];
  15.  
  16. $consulta = 'select * from tblenc where encid = '.$encid.'';
  17. $resultado2 = mysql_query($consulta,$conectar) or die (mysql_error());
  18. $usuario = mysql_fetch_array($resultado2);
  19.  
  20. if($usuario['userid'] == $userid) {
  21. echo 'usted ya voto';
  22. }
  23. else{
  24.  
  25. echo 'usted puede votar';
  26. }
  27. } else {
  28. echo 'debes logearte para votar';
  29. }
  30. ?>

Muchas gracias por tu interés andrexx100, un abrazo :)

Última edición por kenproxd; 26/12/2010 a las 11:24

Etiquetas: encuesta
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.