Select Random
#1
Posted 16/10/2004, 14:02
SELECT top 3 * FROM Fotos ORDER BY id desc
Gostaria de pegar 3 registros aleatorios e mostra-las na tela como por exemplo:
(imagem1)
(imagem2)
(imagem3)
#2
Posted 16/10/2004, 14:05
#3
Posted 16/10/2004, 14:09
#4
Posted 16/10/2004, 14:12
http://forum.wmonlin...showtopic=54924
#5
Posted 16/10/2004, 14:37
tentei usar issu:
SELECT TOP 3 * FROM fotos ORDER BY RND(id)
<% AbreConexao Set rsFotos = Conexao.Execute("SELECT TOP 3 * FROM fotos ORDER BY RND(id)") If rsFotos.EOF Then Response.Write "Nenhuma foto encontrada!" Else imagem=rsFotos("imagem") Response.Write "<table width=""260"" border=""0"" cellspacing=""0"" cellpadding=""0""><tr><td colspan=""2"" rowspan=""2""><img width=""110"" height=""80"" border=0 src="""&imagem&"""></td><td width=""10""> </td><td width=""140""></td></tr>" RsFotos.MoveNext imagem=rsFotos("imagem") Response.Write "<tr><td width=""10""> </td><td width=""140"" rowspan=""3""><img width=""140"" height=""100"" border=0 src="""&imagem&"""></td></tr>" RsFotos.MoveNext imagem=rsFotos("imagem") Response.Write "<tr><td width=""10""> </td><td width=""100""> </td><td width=""10""> </td></tr><tr><td width=""10""> </td><td colspan=""2"" rowspan=""2""><img width=""110"" height=""80"" border=0 src="""&imagem&"""></td></tr><tr><td width=""10""> </td><td width=""140""> </td></tr></table>" End if %>
Na pagina: www.onfest.com.br/fotos/index.asp da pra ve o resultado..
Ele sempre carrega as mesmas fotos..
Pra mim ficou nesta ordem FOTO4.jpg depois FOTO5.jpg e FOTO2.jpg
sempre que atualizo a pagina abre esta sequencia.;.
obs.: Pra ve qual a foto q abriu tem q clica com o direito em cima da foto e propriedades pois todas as fotos são as mesmas...
Edição feita por: Rafa_nostrova, 16/10/2004, 14:41.
#6
Posted 16/10/2004, 14:38
se eu entendi bem, vc quer fazer um sorteio com os dados da tabela ne...
eu tenho um codigo que funciona e acho que é pra isso que vc quer...
-------
<%
ConnectString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\xxx.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
Sql="SELECT * FROM anuncios WHERE ID "
Set RS = conn.Execute(Sql)
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)
bd = "Select * From anuncios WHERE tipo='XXX' ORDER by id="&sID&""
Set rs = conn.execute(bd)
while Not y = 4
%>
<%=rs("empresa")%>
<% rs.movenext
y=y +1
wend
Set RS = Nothing
conn.close %>
-----------
while Not y = 4 diz qts registros serao exibidos.
so muda o XXX da tabela e do endereco do BD
Espero ter ajudado
Abraco
#7
Posted 16/10/2004, 15:08
<% AbreConexao Set rsFotos = Conexao.Execute("SELECT TOP 3 * FROM fotos ORDER BY ID") Do Until RSFotos.EOF or RSFotos.BOF Valores = Valores & RSFotos("ID") & "," RSFotos.Movenext Loop ArraySplit = Split(Left(Valores,Len(Valores)-1),",") Randomize x = CInt(Rnd()*Ubound(ArraySplit)) sID = ArraySplit(x) Set rsFotos = conexao.execute("SELECT * FROM fotos ORDER BY id="&sID&"") while Not y = 3 imagem=rsFotos("imagem") Response.Write "<table width=""260"" border=""0"" cellspacing=""0"" cellpadding=""0"">" Response.Write "<tr><td width=""10""> </td><td width=""140"" rowspan=""3""><img width=""140"" height=""100"" border=0 src="""&imagem&"""></td></tr>" Response.Write "</table>" rsFotos.movenext y=y +1 wend Set rsFotos = Nothing
Ate deu certu mais o problema é que ele naun deixa taao aleatorio.. tipo... Todas as vezes q atualizo a pagina aparece umas dessas sequencias:
Foto1.jpg - foto6.jpg - foto5.jpg (+-)
ou
Foto2.jpg - foto6.jpg - foto5.jpg
ou
Foto3.jpg - foto6.jpg - foto5.jpg
Sabe pq????
Edição feita por: Rafa_nostrova, 16/10/2004, 15:09.
#8
Posted 22/10/2004, 00:35
No PASCAL usando a FUnção RANDOM é necessario declarar um "randomize" para que a sequencia naun seja sempre a mesma... (o que acontece no meu codigo ASP, tentei usar os dois codigos postados nesse topico e todos eles aconteceram isso). O Programa fica mais ou menus assim:::
Program EXEMPLO; Uses CRT; Var {declaração de Variaveis}; Begin randomize; {PAra evitar a repetição de sequncias} {...} For I := 1 to 3 do begin {faz repetir o comando abaixo 3 vezes} X := RANDOM(50); {X vai receber um numero aleatorio entre 0 e 49} End; {...} End.
TEntei usar randomize no ASP mas num consegui nenhum resultado... acredito que o motivo do codigo abaixo der sempre a mesma sequencia deve ser o mesmu do PASCAL.
Set rsFotos = Conexao.Execute("SELECT TOP 3 * FROM fotos ORDER BY RND(id)")
Se alguem conseguir descobrir alguma coisa sobre isso e conseguir resolver o problema por favor poste aki...
Edição feita por: Rafa_nostrova, 22/10/2004, 00:38.
#9
Posted 22/10/2004, 09:15
#10
Posted 22/10/2004, 19:40
#11
Posted 22/10/2004, 22:11
aki eu uso e sai uma sequencia aleatoria direitinho...
#12
Posted 22/10/2004, 22:24
#13
Posted 23/10/2004, 01:52
Dim rndNumero Randomize Timer rndNumero = Int(RND * asmais) exibir.Move rndNumero asmais = ""& exibir("campo")&"" Variavel = ""&asmais&"" Response.Write 'aqui o dado a exibir
aqui neste tuto tem vários exemplos:
http://forum.wmonlin...showtopic=62721
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!
#14
Posted 24/11/2005, 15:27
sql="select * from foto_evento order by RND(INT(NOW*id)-NOW*id)"
no access ...
é so d raiva pq procurei procurei e naum achei
-------------------------------------------------------------------
Sistemas CGMOTION a melhor solução para seu site!!!
Sistema de usuarios online
Galeria de imagens (atualizada)!!!
Sistema de bate papo!!!
Sistema de Noticias
Acesse já o forum CGMOTION
*o verdadeiro amigo não é aquele que aparta a briga, mas sim aquele que chega dando uma voadora*
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)