Shopping Hospedagem Fórum Contato
     
   O portal do desenvolvedor ASP Florianópolis-SC, Sábado - 18 de Novembro de 2017  
Busca

Menu do site
Efetuar Login
Usuário:

Senha:

 Esqueceu a senha?
Login automático

 Cadastre-se
Sortear registros de um banco de dados
Avaliações: 90   -   Minha nota: Média Geral: 2  

  
Vou mostrar neste artigo como sortear registros de um banco de dados para exibi-los aleatóriamente, a cada vez que a página é carregada.

Para isto vou usar um método muito simples e prático, que pode ser feito em qualquer base de dados que você possua.

Abra tabela do banco de dados desejada e crie um novo campo chamado controle_exibicao do tipo numérico, como mostra a figura abaixo:

Obs: A tabela deve conter tambem um campo do tipo autonumérico, que será usado junto com o controle de exibição, neste exemplo, usaremos o campo ID


Vamos então ao código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

<html>
<head>
<title>Sortear registros</title>
</head>
<style type="text/css">
.texto{
font-family: Arial;
font-size: 11px;
}
</style>
<body class="texto">

<%
Dim strCon, objCon, objRS_update
'String de conexão para o banco de dados
strCon = "DBQ=C:\danco_de_dados\sortear.mdb;Driver={Microsoft Access Driver (*.mdb)};"

'Cria a conexao com a base de dados
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open strCon

strQ = "SELECT TOP 3 * FROM produtos ORDER BY controle_exibicao ASC, id ASC"
Set objRS = objCon.Execute(strQ)
If Not objRS.EOF  Then
  If Int(objRS("controle_exibicao")) > 900000 Then
    strQ = "UPDATE produtos SET controle_exibicao=0"
    Set objRS_update = objCon.Execute(strQ)
  End If
%>

<table width="160" border="0" cellspacing="3" cellpadding="5" style="border: 1px solid #737373" bgcolor="#E1E6E6" class="texto">
<%
strQ = ""
While Not objRS.EOF
  strQ = strQ & " OR id=" & objRS("id")
%>
  <tr>
    <td bgcolor="#FFFFFF">
<%
Response.Write "<font color=orangered><b>" & objRS("produto") & "</b></font><br>"
Response.Write objRS("descricao")
%>
 </td>
  </tr>
<%
  objRS.MoveNext
Wend
%>
</table>

<%
  strQ = "UPDATE produtos SET controle_exibicao=controle_exibicao+1 WHERE id=0 " & strQ
  Set objRS_update = objCon.Execute(strQ)
End If

objCon.Close
%>

</body>
</html>


Na linha 22 informa que serão capturados apenas 3 registros, atraves da opção TOP 3, você pode mudar para exibir quantos registros desejar.

A lógica deste exemplo é, exibir o número de registros desejados, pela ordem de menor_exibição. Quando os registros são exibidos, aumentamos o campo ordem_exibicao dos mesmo, fazendo com que na proxima vez que a página for carregada, os mesmos não sejam exibidos. Desta forma, haverá um rodizio de exibição dos mesmos.

Fabiano Dias
fabiano@superasp.com.br

www.superasp.com.br
O portal do desenvolvedor ASP




SuperASP do Brasil Ltda

03.066.522/0001-84
Av. Rio Branco 433 - Centro - Florianopolis - SC
Contato

© 2001/2008 - Superasp do Brasil Ltda. Todos os direitos reservados