Display aleatório
#1 leyton
Posted 14/01/2003, 00:56
Alguém poderia mostrar como poderia fazer esse processo.
Desde já agradeço,
#2 Riven
Posted 14/01/2003, 11:01
sinceramente, não entendi direito o que você deseja fazer...
Você quer criar uma página que vizualizará alguns registros, porém apenas 10 por página, o restante você não quer fazer paginação, e a parte que não estou entendendo direito, é de que você quer qua a página se auto-atualize e mostre os registros restantes???
Explique-me melhor o que você quer fazer, para que eu possa ajudá-lo...
#3 Xclick
Posted 14/01/2003, 14:19
<%
Set Con = CreateObject("ADODB.Connection")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bd.mdb")
Set RS = Con.Execute("SELECT * FROM Dados")
'Randomiza os ids existentes no BD
Do Until RS.EOF or RS.BOF
Valores = Valores & RS("ID") & ","
RS.Movenext
Loop
ArraySplit = Split(Left(Valores,Len(Valores)-1),",")
Randomize
x = CInt(Rnd()*Ubound(ArraySplit))
sID = ArraySplit(x)
'Mostra os dados de acordo com o ID sorteado
Set rsMostra = Con.Execute("SELECT * FROM Dados where id=" & sID)
Response.Write "Nome: " & rsMostra("Nick") & "<br>"
Response.Write "Senha: " & rsMostra("Senha") & "<br>"
%>
acho que se vc tiver um campo de código no seu banco, fica fácil... é só mudar os outros campos...
#4 Leyton
Posted 15/01/2003, 08:06
Desde já agradeço pela força,
<%
Set Con = CreateObject("ADODB.Connection")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("databases/sts10.mdb")
Set RS = Con.Execute("SELECT * FROM banners")
'Randomiza os ids existentes no BD
Do Until RS.EOF or RS.BOF
Valores = Valores & RS("baNNER_ID") & ","
RS.Movenext
Loop
ArraySplit = Split(Left(Valores,Len(Valores)-1),",")
Randomize
x = CInt(Rnd()*Ubound(ArraySplit))
sID = ArraySplit(x)
'Mostra os dados de acordo com o ID sorteado
Set rsMostra = Con.Execute("SELECT * FROM BANNERS where BANNER_id=" & sID)
Response.Write "Nome: " & rsMostra("BANNER_IMAGEM") & "<br>"
%>
#5
Posted 15/01/2003, 11:20
XClick, valeu por tocar no meu nome!
Leyton, você pode usar essa mesma estrutura se você quiser.
Para mostrar 5 registros diferentes, utilize um For, como coloquei no código abaixo (o mesmo código, alterado).
O único problema é que se você tiver poucos registros, os banners irão se repetir.
Para isso, você pode fazer uma verificação simples de variáveis ao invés de usar o - response.write rs("Banner") -, utiliza uma variável e tenta ver se ela está com o mesmo valor de uma anterior.
Segue o código:
<%
Set Con = CreateObject("ADODB.Connection")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bd.mdb")
Set RS = Con.Execute("SELECT * FROM Dados")
For i = 1 to 5
'Randomiza os ids existentes no BD
Do Until RS.EOF or RS.BOF
Valores = Valores & RS("ID") & ","
RS.Movenext
Loop
ArraySplit = Split(Left(Valores,Len(Valores)-1),",")
Randomize
x = CInt(Rnd()*Ubound(ArraySplit))
sID = ArraySplit(x)
'Mostra os dados de acordo com o ID sorteado
Set rsMostra = Con.Execute("SELECT * FROM Dados where id=" & sID)
Response.Write "Nome: " & rsMostra("Nick") & "<br>"
Response.Write "Senha: " & rsMostra("Senha") & "<br><br>"
Next
%>
Boa sorte!
' profissão: ALOG Data Centers do Brasil (analista de sistemas)
' publicidade: ALOG Data Centers do Brasil
#6 Leyton
Posted 15/01/2003, 16:59
Abaixo eu inseri o código que eu readapitei das dicas conseguidas até agora:
<%
set rsBanners = Server.CreateObject("ADODB.Recordset")
rsBanners.ActiveConnection = MM_banners_STRING
rsBanners.Source = "SELECT * FROM banners where banner_tipo = 'size'"
rsBanners.CursorType = 3
rsBanners.CursorLocation = 2
rsBanners.LockType = 3
rsBanners.Open()
rsBanners_numRows = 0
%>
<%
For i = 1 to 5
Dim rndmax
rndmax = CInt (rsBanners.RecordCount)
rsBanners.Movefirst
Dim rndNumber
Randomize Timer
rndNumber = Int (RND * rndMax)
rsBanners.Move rndNumber
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <a href="redir.asp?id=<%=(rsBanners.Fields.Item("banner_id"))%>&url=<%=(rsBanners.Fields.Item("banner_url"))%>"><img src="<%=(rsBanners.Fields.Item("banner_imagem").Value)%>" border="0"></a>
</td>
</tr>
</table>
<%
Next
rsBanners.Close()
%>
A união faz a força viva o Brasil, viva a a todos companheiros
#7 Xclick
Posted 16/01/2003, 00:23
sobre a verificação, vc precisa armazenar os 5 banners em 5 varráveis e fazer um comparação entre elas e apenas exibir as que forem diferentes... você pode jogar os 5 em uma matriz ou então usar uma cadeia de comparação (ifs)
#8 Leyton
Posted 16/01/2003, 10:28
#9 Leyton
Posted 17/01/2003, 01:52
<%
For i = 1 to 5
if i = ("banner_id") then
exit for
end if
Dim rndmax
rndmax = CInt (rsBanners.RecordCount)
rsBanners.Movefirst
Dim rndNumber
Randomize Timer
rndNumber = Int (RND * rndMax)
rsBanners.Move rndNumber
%>
#10
Posted 17/01/2003, 17:18
<%
For i = 1 to 5
if i = ("banner_id") then exit for
Dim rndmax
rndmax = CInt (rsBanners.RecordCount)
rsBanners.Movefirst
Dim rndNumber
Randomize Timer
rndNumber = Int (RND * rndMax)
rsBanners.Move rndNumber
%>
Mas mesmo assim acho que seu código não vai dar certo, o que é esse banner_id, uma querystring, uma variável...?
teria que ser tipo isso:
if i = Request.QueryString("banner_id") then exit for
ou
if i = Rs("banner_id") then exit for
sei lá, o que você estiver indicando no seu código
Não sei se moro muito bem ou muito mal.
Só sei que agora faço parte do país.
A inteligência é fundamental."
(Farofa Carioca)
#11 Leyton
Posted 18/01/2003, 08:02
A condição que eu estou tentando fazer é:
Se os banners retornados tiver algum repetido então procura uma id de um banner diferente para que todos os banners possam retornar sem que tenha algum repetido.
O código atual ele retorna com alguns banners iguais éntão eu só estou tentando fazer que isso não ocorra.
Será que tem um jeito?
Desde já agradeço a atenção.
Abaixo eu inseri o código que eu estou tentando montar: Aqui ele retorna os banners de forma aleátoria mas o problema é não retornar banners repetidos na mesma visualização de banners retornados.
<%
set rsBanners = Server.CreateObject("ADODB.Recordset")
rsBanners.ActiveConnection = MM_banners_STRING
rsBanners.Source = "SELECT * FROM banners where banner_tipo = 'size'"
rsBanners.CursorType = 3
rsBanners.CursorLocation = 2
rsBanners.LockType = 3
rsBanners.Open()
rsBanners_numRows = 0
%>
<%
For i = 1 to 5
Dim rndmax
rndmax = CInt (rsBanners.RecordCount)
rsBanners.Movefirst
Dim rndNumber
Randomize Timer
rndNumber = Int (RND * rndMax)
rsBanners.Move rndNumber
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <a href="redir.asp?id=<%=(rsBanners.Fields.Item("banner_id"))%>&url=<%=(rsBanners.Fields.Item("banner_url"))%>"><img src="<%=(rsBanners.Fields.Item("banner_imagem").Value)%>" border="0"></a>
</td>
</tr>
</table>
<%
Next
rsBanners.Close()
%>
#12
Posted 20/01/2003, 14:27
Estou com uns problemas, e vou tentar explicá-los da melhor forma possível
Mostruário Aleatório
Eu queria um sistema que utilizasse a tabela produtos, e fizesse uma consulta (acho que SQL) e retornasse a imagem do produto, o link e o seu preço, e o nome do produto esse link seria para o detalhes do produto,
mais que esse sistema funcionasse de forma aleatória, quando vc visitasse a pagina várias vezes, o sistema trocaria de produto, como se fosse um trocador de banner. Só que ao invés de trocar o banner, trocaria tudo, preço, links e a imagem... eu to com dor de cabeça agora só de ficar horas e horas no micro querendo fazer isso..
Na tabela tem um campo chamado disp, se esse disp tiver armazenado a variável N o produto não pode ser demonstrado, ou seja ele nãopode participar desse sistema que eu to tentando montar, e não estou
conseguindo.
O tabela produtos tem os campos nome,preco,imagem,disp,id,descricao.
Ae eu sou meio iniciante no ASP, e queria saber como fazer isso...
Se algum puder me ajudar eu agradeço
Falou!!!
Imagine todo o povo jogando Wii.... vc irá dizer que eu sou sonhador, mas não sou o único. Espero que você um dia se junte a nós. (Fanboy Nintendista)
#13 Leyton
Posted 20/01/2003, 19:36
Segue Abaixo o que vc precisa, se vc souber alguem que possa me dar uma dica para o meu caso eu agradeço um abraço .
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/produtos.asp" -->
<%
Dim RsProdutos__MMColParam
RsProdutos__MMColParam = "N"
if (Request("MM_EmptyValue") <> "") then RsProdutos__MMColParam = Request("MM_EmptyValue")
%>
<%
set RsProdutos = Server.CreateObject("ADODB.Recordset")
RsProdutos.ActiveConnection = MM_banners_STRING
RsProdutos.Source = "SELECT * FROM Produtos WHERE disp <> '" + Replace(RsProdutos__MMColParam, "'", "''") + "'"
RsProdutos.CursorType = 3
RsProdutos.CursorLocation = 2
RsProdutos.LockType = 3
RsProdutos.Open()
RsProdutos_numRows = 0
Dim rndMax
rndmax = CInt (rsProdutos.RecordCount)
rsProdutos.Movefirst
Randomize Timer
rndNumber = Int (RND * rndMax)
rsProdutos.Move rndNumber
%>
<%
Dim Repeat1__numRows
Repeat1__numRows = -1
Dim Repeat1__index
Repeat1__index = 0
RsProdutos_numRows = RsProdutos_numRows + Repeat1__numRows
%>
<%
While ((Repeat1__numRows <> 0) AND (NOT RsProdutos.EOF))
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="<%=(RsProdutos.Fields.Item("imagem").Value)%>"><br>
<a href="detalhes.asp?id=<%=(RsProdutos.Fields.Item("id").Value)%>"><%=(RsProdutos.Fields.Item("produto").Value)%></a><br>
<%=(RsProdutos.Fields.Item("preco").Value)%></td>
</tr>
</table>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
RsProdutos.MoveNext()
Wend
%>
<%
RsProdutos.Close()
%>
#14
Posted 20/01/2003, 19:40
Seguinte, amigo...
Neste tópico eu colei um código pro nosso amigo, um código de sorteio, certo?
Pode utilizar esse mesmo código para fazer o sorteio dos produtos, da maneira que você quer.
Agora, para verificar se está na variável N e não mostrar, você pode usar:
If "blablabla" <> N Then
... mostra ...
End If
Ou seja, no código acima ele está fazendo uma comparação de um valor com a variável N. Se o valor "blablabla" for diferente de N, ele mostra o produto.
Ok?
Boa sorte!
' profissão: ALOG Data Centers do Brasil (analista de sistemas)
' publicidade: ALOG Data Centers do Brasil
#15
Posted 21/01/2003, 08:56
Alguem manja de acess? eu to usando um BD que esta protegido, não dá para editá-lo... tem como mudar isso e fazê-lo editável novamente?
coloquei o script dentro de um arquivo .INC
agora ele dá esse erro... parece coisa do Banco de dados:
quando eu tirei a linha, funcionou legal, mais não vi nada de aleatório
nessa tabela tem o campo disp e o campo imagem... eu quero bloqueá-los quando no campo disp aparecer a variavel "N" e no imagem quando armazenar um gif- "sfoto.gif"
(Microsoft OLE DB Provider for ODBC Drivers error '80040e24'
O conjunto de linhas não dá suporte para busca regressiva.
/gg/aleatoremode.inc, line 16)
<%
Dim rsBanners,i,rsBanners_numRows
set rsBanners = lojaDB.Execute("SELECT * FROM produtos")
rsBanners_numRows = 0
%>
<%
For i = 1 to 5
Dim rndmax
rndmax = CInt (rsBanners.RecordCount)
rsBanners.Movefirst
Dim rndNumber
Randomize Timer
rndNumber = Int (RND * rndMax)
rsBanners.Move rndNumber
%>
<table width="40%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align =center>
<a href="detalheprod.asp?prod_id=<%=(rsBanners.Fields.Item("id"))%>&url=<%=(rsBanners.Fields.Item("nome"))%>"><img src=/images/"<%=(rsBanners.Fields.Item("imagem").Value)%>" border="0"></a>
<br><font size="1"><font color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><b>
<a href="detalheprod.asp?prod_id=<%=(rsBanners.Fields.Item("id"))%>&url=<%=(rsBanners.Fields.Item("nome"))%>"><%=(rsBanners.Fields.Item("nome"))%><br><%=(rsBanners.Fields.Item("descricaop"))%></a>
<br><%=(rsBanners.Fields.Item("preco"))%>,00</b></font></font></div></td>
</tr>
</table>
<%
Next
rsBanners.Close()
%>
Ae valeu mesmo pessoal, esse forum caiu do ceu ou do servidor... nunca mais paro de postar aqui...
Olha o resultado: aqui
para funcionar nessa foto ae, saquei ela linha debaixo...
rsBanners.Move rndNumber
Grato
Falou!!!
Imagine todo o povo jogando Wii.... vc irá dizer que eu sou sonhador, mas não sou o único. Espero que você um dia se junte a nós. (Fanboy Nintendista)
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)