Preciso fazer um sorteio de registros em meu banco de dados, porém, este registro sorteado não participará de novos sorteios.
Estive pesquisando aqui no fórum e achei uma programação que o BARETA (Valeu Bareta!) fez e que faz o sorteio:
<%
'criando a conexão
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("testdb.mdb")
'conta o total de registros
ComandoSQL = "SELECT COUNT(id) AS total FROM produtos"
Set bd = Conexao.Execute(ComandoSQL)
'faz a escolha de um numero aleatorio
randomize()
peso = Int(bd("total") *Rnd) + 1
bareta=bd("total")
'seleciona o registro aleatorio
ComandoSQL = "SELECT top "&peso&" * FROM produtos"
Set bd = Conexao.Execute(ComandoSQL)
bd.Move peso - 1
'imprime na tela o registro escolhido
Response.Write bd("produto")%><br><%
'fecha a conexão
Conexao.Close
Set Conexao = Nothing
Set bd = Nothing
'mostra o numero escolhido
Response.Write peso
%>|||<%
'mostra o total de registros
Response.Write bareta
%>
Estive pensado que para fazer este sorteio sem repetições, eu deveria ter um campo no banco de dados que quando o registro for sorteado eu gravo neste campo a informação "sorteado".
Minha dúvida é como selecionar apenas os que não tem "sorteado" no campo para participar do random?
Pergunta
Michael C
Olá amigos!
Sou iniciante e estou com uma dúvida!
Preciso fazer um sorteio de registros em meu banco de dados, porém, este registro sorteado não participará de novos sorteios.
Estive pesquisando aqui no fórum e achei uma programação que o BARETA (Valeu Bareta!) fez e que faz o sorteio:
<% 'criando a conexão Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("testdb.mdb") 'conta o total de registros ComandoSQL = "SELECT COUNT(id) AS total FROM produtos" Set bd = Conexao.Execute(ComandoSQL) 'faz a escolha de um numero aleatorio randomize() peso = Int(bd("total") *Rnd) + 1 bareta=bd("total") 'seleciona o registro aleatorio ComandoSQL = "SELECT top "&peso&" * FROM produtos" Set bd = Conexao.Execute(ComandoSQL) bd.Move peso - 1 'imprime na tela o registro escolhido Response.Write bd("produto")%><br><% 'fecha a conexão Conexao.Close Set Conexao = Nothing Set bd = Nothing 'mostra o numero escolhido Response.Write peso %>|||<% 'mostra o total de registros Response.Write bareta %>Estive pensado que para fazer este sorteio sem repetições, eu deveria ter um campo no banco de dados que quando o registro for sorteado eu gravo neste campo a informação "sorteado".
Minha dúvida é como selecionar apenas os que não tem "sorteado" no campo para participar do random?
Desde já eu agradeço!
Valeu!
Link para o comentário
Compartilhar em outros sites
1 resposta 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.