Lógica de uma enquete
A lógica de uma enquete é muito simples, mas recebi algumas solicitações por e-mail com dúvidas. Tentarei aqui, explicar como criar uma enquete.
O minha lógica não é a melhor, mas pode ajudá-lo. Primeiramente crio três tabelas: enquetes, votos, opcoes.
Uso das tabelas:
» enquetes: crio as colunas id e enquete aonde coloco as enquetes obviamente.
» opcoes: crio as colunas id, opcoes, idenq.
» votos: crio as colunas id, idenq, idopcao, votos.
Agora crio o arquivo enquete.asp aonde a lógica é bastante simples. Primeiro vejo qual o id da enquete (caso existam varias). O mesmo virá em pela url (enquete.asp?id=1). Vejo o número da enquete solicitada e pego do banco de dados.
Após isso, preciso colocar as opções de voto. As opções de voto estão em apenas uma coluna, separados por ponto e vírgula (";"), por exemplo:
TABELA "opcoes" |
id | opcoes | idenq |
1 | sim;não; | 1 |
Agora preciso ler a coluna opções, separar os dados e colocar no form para enviar para a pagina de resultados.
Para separar os dados uso a função split() a qual cria um array. Por exemplo:
<%
'suponhamos que a variavel Opcoes tem o valor das opcoes da tabela ("sim;não;")
Opcoes = Split(Opcoes,";")
'precisamos saber agora quantos arrays a funcao split criou, e por isso usaremos a funcao uBound()
for i = 0 to uBound(Opcoes)
response.write Opcoes(i) & "<br>"
next
%>
Esse código respondeu na página os dados da coluna opcoes da tabela opcoes separados. Para por no form, use sua criatividade...
Por exemplo, no lugar de apenas responder Opcoes(i) & "<br>", coloque o <select name="opcoes"> antes do código, e </select> depois, e aonde está o response.write Opcoes(i) .... coloque: response.write "<option value="& Opcoes(i) &">"& Opcoes(i) &"</option>".
Agora tudo certo. Crie uma página aonde ele atualiza os dados da tabela votos e aumente um voto de acordo com a enquete e o voto selecionado.
Após tudo isso, apenas falta a lógica da porcentagem. A lógica de mostrar os votos é simples, apenas pegue de acordo com a enquete solicitada e responda na página. Agora, a porcentagem, muito simples também, mais vou explicar:
<%
'suponhamos que o total de votos (de todos) esteja armazenado na variável Total. Vou pegar apenas o valor de uma opcao. O valor da mesma está na variavel valor_opc
porcent = valor_opc * 100 / Total
response.write porcent & "%"
%>
Você entendeu? Espero que sim... pegamos o valor dos votos da opcao (suponhamos que seja 10) e do total (suponhamos que seja 100). Isso iria responder 10%. Pronto, agora você tem mais ou menos a lógica de uma enquete. Caso surja alguma dúvida, me notifique pelo e-mail: brunofuster@hotmail.com Se possível, envie com o Assunto "Enquete". Valeu! :)
0 comentários:
Postar um comentário