domingo, 6 de janeiro de 2002

Um pouco sobre enquetes

  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"










idopcoesidenq
1sim;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! :)



Esta matéria foi postada originalmente no ASP4Developers por Bruno Fuster, que na época era " (nothing) :PP surfy (irc.brasnet.org) #webmasters, #asp, #cbjr". Hoje, vai saber...

0 comentários: