Boa noite, pessoal! Estou com uma dúvida terrível! Tenho uma Pesquisa de Satisfação / Interesses com mais de 50 perguntas, onde cada pessoa consultada pode responder: Péssimo, Ruim, Normal, Bom ou Ótimo e essas respostas são gravadas no BD em campos int(1) os valores: 0,1,2,3 e 4 respectivamente às respostas já citadas.
Tenho a tabela “pesquisa” abaixo (para exemplo coloquei só algumas colunas, mas têm mais de 50 colunas - perguntas):
1 para Pergunta7, Pergunta8, Pergunta11, Pergunta15, etc..
2 para Pergunta5, Pergunta6, etc...
3 para Pergunta3, etc...
4 para Pergunta4, Pergunta9, Pergunta12, Pergunta13, Pergunta14, Pergunta50, etc...
OBS.:Caso alguma das opções de resposta não tenha sido citada (respondida) ela não pode aparecer. Por exemplo: se nenhuma pergunta foi respondida com "2", a palavra "Normal:" não deve aparece na listagem acima.
Como faço para ter este tipo de retorno com um monte de colunas e cada usuário com uma linha de registro somente? Parece simples, a princípio, mas não estou encontrando uma forma de manipular os dados da consulta para conseguir o retorno desejado acima...
Para consultar estou usando:
$query = mysqli_query($mysqli, "SELECT * FROM pesquisa WHERE id = '1' LIMIT 1");
Pergunta
Andy_pts
Boa noite, pessoal! Estou com uma dúvida terrível! Tenho uma Pesquisa de Satisfação / Interesses com mais de 50 perguntas, onde cada pessoa consultada pode responder: Péssimo, Ruim, Normal, Bom ou Ótimo e essas respostas são gravadas no BD em campos int(1) os valores: 0,1,2,3 e 4 respectivamente às respostas já citadas.
Tenho a tabela “pesquisa” abaixo (para exemplo coloquei só algumas colunas, mas têm mais de 50 colunas - perguntas):
id | Cliente | p1 | p2 | p3 | p4 | p5 | p6 | p7 | p8 | p9 | p10 | p11 | p12 | p13 | p14 | p15| ... | p50
1 | Fulano | 0 | 0 | 3 | 4 | 2 | 2 | 1 | 1 | 4 | 0 | 1 | 4 | 4 | 4 | 1 | ... | 4
Daí preciso consultar para quais Perguntas “Fulano” respondeu cada uma das notas que forem citadas (de 0 a 4), e ter um retorno conforme abaixo:
Nome do consultado: Fulano
Respostas:
Péssimo:
Pergunta1, Pergunta2, Pergunta10, etc...
Ruim:
Pergunta7, Pergunta8, Pergunta11, Pergunta15, etc..
Normal:
Pergunta5, Pergunta6, etc...
Bom:
Pergunta1, Pergunta2, Pergunta10, etc...
Ótimo:
Pergunta4, Pergunta9, Pergunta12, Pergunta13, Pergunta14, Pergunta50, etc...
Ou seja, “Fulano” respondeu:
0 para Pergunta1, Pergunta2, Pergunta10, etc...
1 para Pergunta7, Pergunta8, Pergunta11, Pergunta15, etc..
2 para Pergunta5, Pergunta6, etc...
3 para Pergunta3, etc...
4 para Pergunta4, Pergunta9, Pergunta12, Pergunta13, Pergunta14, Pergunta50, etc...
OBS.: Caso alguma das opções de resposta não tenha sido citada (respondida) ela não pode aparecer. Por exemplo: se nenhuma pergunta foi respondida com "2", a palavra "Normal:" não deve aparece na listagem acima.
Como faço para ter este tipo de retorno com um monte de colunas e cada usuário com uma linha de registro somente? Parece simples, a princípio, mas não estou encontrando uma forma de manipular os dados da consulta para conseguir o retorno desejado acima...
Para consultar estou usando:
$query = mysqli_query($mysqli, "SELECT * FROM pesquisa WHERE id = '1' LIMIT 1");
$nlinhas = mysqli_num_rows($query);
if ($nlinhas > 0) {
$dados = mysqli_fetch_array($query);
$id= $dados['id'];
$cliente = $dados['Cliente'];
$p1= $dados['p1'];
$p2= $dados['p2'];
$p3= $dados['p3'];
$p4= $dados['p4'];
$p5= $dados['p5'];
E assim por diante...
}
Alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.