Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido)�Como fazer o usuario acessar uma pergunta apenas


Guest TADEU VAZ

Pergunta

Guest TADEU VAZ

Pessoal,

Estou fazendo um sistema de quizz onde o usuario seleciona no banco de dados a pergunta apenas uma vez. Já pensei em utilizar a função aleatória ( rand() ), mas como o número de questões que eu tenho é pequena, com o tempo, faz com que a chance do usuario responder a mesma pergunta com o passar das utilizações se torna muito grande.

Por isso, gostaria de saber como faço para que o usuario selecione cd pergunta apenas uma vez.

Att

TADEU VAZ

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Se o usuário não for registrado, utilize sessions ou cookies para guardar os ids (chaves primárias) das perguntas que o cara já viu, ai na query você utiliza O NOT IN e coloca as ids já visualizadas...

Caso cara for registrado, ai você pode guardar essa informação acima no próprio BD...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest TADEU VAZ
Se o usuário não for registrado, utilize sessions ou cookies para guardar os ids (chaves primárias) das perguntas que o cara já viu, ai na query você utiliza O NOT IN e coloca as ids já visualizadas...

Caso cara for registrado, ai você pode guardar essa informação acima no próprio BD...

Oi...Obrigado pela resposta...

No meu sistema o usuario já é cadastrado e a informação das perguntas respondidas eu coloco no BD. O meu problema está saber como fazer o sistema escolher uma pergunta não respondida pelo usuario. Minha duvida é:

devo usar o while? Se sim, como deve ser o codigo?

Att

TADEU VAZ

Link para o comentário
Compartilhar em outros sites

  • 0

Como disse, você deve usar o NOT IN na query... se você já guarda as perguntas respondidas pelo usuário basta colocar os IDs no NOT IN que a própria query filtra...supondo que o cara responde as perguntas 3, 7 e 11, então ficaria:

SELECT * FROM tabela WHERE id NOT IN('3','7','11')
Isso vai forçar a BD pegar "tudo" menos o 3, 7 e 11... você só vai ter que criar uma query antes e depois um pequeno algoritmo pra montar os IDs da meneira que o NOT IN requer... Também pode ir direto na subquery..
SELECT * FROM tabela WHERE id NOT IN(SELECT id FROM tabela2 WHERE id_usuario = 'TAL')

Note que tabela2 é a que guarda as perguntas respondidas pelo usuário, id seria a coluna que guarda o ID da pergunta e TAL é o o modo como você identifica o usuário, id_usuario é a coluna que identifica a que usuário pertence os registros na tabela2...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest TADEU VAZ
Como disse, você deve usar o NOT IN na query... se você já guarda as perguntas respondidas pelo usuário basta colocar os IDs no NOT IN que a própria query filtra...supondo que o cara responde as perguntas 3, 7 e 11, então ficaria:

SELECT * FROM tabela WHERE id NOT IN('3','7','11')
Isso vai forçar a BD pegar "tudo" menos o 3, 7 e 11... você só vai ter que criar uma query antes e depois um pequeno algoritmo pra montar os IDs da meneira que o NOT IN requer... Também pode ir direto na subquery..
SELECT * FROM tabela WHERE id NOT IN(SELECT id FROM tabela2 WHERE id_usuario = 'TAL')

Note que tabela2 é a que guarda as perguntas respondidas pelo usuário, id seria a coluna que guarda o ID da pergunta e TAL é o o modo como você identifica o usuário, id_usuario é a coluna que identifica a que usuário pertence os registros na tabela2...

Amigo,

Vlw pelo orientação! Não conhecia esse comando "NOT IN"...Como era fácil...rsss

Vlw pela atenção!

Abraço!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...