PHP - Query SQL que parece sencilla, pero no lo es...

 
Vista:

Query SQL que parece sencilla, pero no lo es...

Publicado por nosecomohacerle (11 intervenciones) el 04/08/2007 05:10:32
Holas amigos, tengo un problema con 1 query ligado a 2 tablas que tengo ya dias y no puedo resolver...se los describo a continuacion

Es un script de votacion

Tabla 1
id, pregunta

Tabla 2
id, ip, fecha

Objetivo
Mostrar SOLAMENTE las preguntas que la IP del usuario no ha votado.

Reglas:
- Usuario puede votar 1 vez al dia por cada pregunta
- En tabla 1, puede haber N numero de preguntas
- Cuando usuario vota a una pregunta, se agrega ala tabla 2 un registro que contiene (obvio jeje) el ID de pregunta ( el mismo de tabla 1) la IP del usuario y la Fecha de votacion.
Esto para evitar que una misma IP pueda votar 2 veces el mismo dia.
- El usuario puede votar al siguiente dia x la misma pregunta.

Problema:
Que query SQL puedo ejecutar para al momento de cargar la pagina, me muestre 1 pregunta, pero que dicha pregunta el usuario no la haya contestado dicho dia.

Ejemplos:

tabla 1
1 - Te gustan los hombres o mujeres
2 - Eres alto, chaparro o mediano ?
3 - Que prefieres, soccer o baseball ?

tabla 2
1 - 127.0.0.1 - 2007/08/12
1 - 127.0.0.1 - 2007/08/13
1 - 127.0.0.1 - 2007/08/14
1 - 127.100.0.1 - 2007/08/12
1 - 227.0.22.1 - 2007/08/12
2 - 127.0.0.1 - 2007/08/12
3 - 127.0.0.1 - 2007/08/12

Aqui arriba vemos que la IP ha votado ya por las 3 preguntas. Por la pregunta con ID 1, ha votado 3 veces, pero en los dias 12,13 y 14....ya no podra votar esos dias, solo por los dias siguientes.

Ojala me haya explicado....

Ahora, como sabes que un usuario ya voto por alguna pregunta ?
Pues si su IP se encuentra en la base de datos y su fecha de votacion es igual a la fecha actual...osea del dia que esta en curso...

Ayuda x favor !!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Query SQL que parece sencilla, pero no lo es...

Publicado por betsy (7 intervenciones) el 05/08/2007 19:06:15
pensemos q cargas la pagina con la pregunta Eres alto, chaparro o mediano ? y su id es 2
hoy es 5-08-2007 y el usuario 227.0.22.1 ya voto por esta
entonces para saber q asi fue :

select t2.ip
from tabla 2 t2
where fecha ="TODAY()" and id=2;

Luego recorres con un while la consulta

while($row=mysql_fetch_array){

Y AQUI COMPARAS EL ID Q ENTRO A LA PAGINA CON LOS Q YA TIENES REGISTRADOS HOY PARA Q LO DEJES O NO VOTAR

}

Nota lo de TODAY no recuerdo la sintaxis pero existe una funcion de fecha de php q te permite obtener la fecha de hoy

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar