Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Phablo Iago

[Resolvido] Consulta aleatoria

Recommended Posts

Galera estou com um problemão para resolver, e estou quase enloquecendo.

O problema é o seguinte, tenho um banco de dados com vária perguntas a estrutura dele está mais ou menos assim

 

id | pergunta | alternativa1 | alternativa2 | alternativa 3| resposta

 

e outra com os dados dos usuarios.

 

estou tentando fazer uma consulta onde o php faça uma busca aleatoria no banco, até aí tudo bem, só que eu preciso que na próxima consulta do mesmo usuario ele não possibilite essa pergunta a aparecer novamente.

 

se alguem puder me dar uma luz serei bastante grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tera que guardar o id da linha que usou na primeira vez, em alguma variavel, para depois na proxima consulta, fazer uma verificacao WHERE para que a consulta de te devolva algo diferente( <> ) do que você ja usou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o William falou:

 

SELECT * FROM `enquetes` WHERE (`id` != 2) ORDER BY RAND() LIMIT 1

E você teria que salvar esse ID de alguma forma... :)

 

Ou de outra forma:

SELECT * FROM `enquetes` WHERE (`ultima` != 1) ORDER BY RAND() LIMIT 1

E você atualiza esse ultima sempre que pegar uma enquete.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais aí a idéia é que cada usuario possar responder apenas 5 perguntas por dia, quando for no dia seguinte ele responda mais cinco perguntas sem repetir nenhuma.

 

tem como eu guardar todas essas id's em um campo do BD?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí a minha sugestão é que você crie uma tabela relacionando as perguntas respondidas por usuário e com a data. Na hora que ele entrar para responder, você primeiro veja se ele já respondeu 5 perguntas hoje, nesta tabela nova. Depois, caso passe esta validação, consulta nas perguntas onde o id não esteja dentro desta tabela, usando subquery.

 

Veja se deu pra entender mais ou menos... Qualquer coisa posta de novo.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só não entendi como é que vou fazer para guardar as id's das perguntas respondidas e como vou fazer a query para fazer a busca aleatoria com resultados diferentes das id's guardadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como é que vou fazer para guardar as id's das perguntas respondidas

Cria uma tabela mais ou menos assim...

 

  • id_usuario
  • id_pergunta
  • data_resposta

Grava o id do usuário que respondeu, a pergunta que ele respondeu e a data da resposta (para bloquear mais de 5 por dia).

 

como vou fazer a query para fazer a busca aleatoria com resultados diferentes das id's guardadas

Usando subquery...

SELECT * FROM perguntas WHERE id_pergunta NOT IN (SELECT id_pergunta FROM tabela_nova_que_voce_vai_criar WHERE id_usuario = ID_DO_USUARIO_QUE_ESTA_RESPONDENDO_AS_PERGUNTAS);

 

Mais ou menos assim.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.