Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

William Lepinski

SELECT com Random !

Recommended Posts

Aewwwww

 

bom, to com um projeto e queria saber como faço para gerar um SELECT em um banco de dados ACCESS para exibir 5 fotos aleatórias a cada atualização !

 

como faço issu.... :huh:

 

vo colocar parte de meu código abaixo para vcs me ajudarem !

<%Dim ConnDBSet ConnDB =  Server.CreateObject("ADODB.Connection")ConnDB.Open "DBQ=" & Server.MapPath("meu banco") & ";Driver={Microsoft Access Driver (*.mdb)}"Set Aleatorio = Server.CreateObject("ADODB.Recordset")SQL2 = "Select * From minhatable"Set Aleatorio = ConnDB.Execute(SQL2)%><%Dim Rep01Rep01 = 5Dim Rep_indexRep_index = 0Aleatorio_numRows = Aleatorio_numRows + Rep01%> <%While ((Aleatorio_numRows <> 0) AND (NOT Aleatorio.EOF))%>        <a href="bla.asp?ID="<%=Aleatorio.Fields.Item("ID").Value %>"><img src="<%=(Aleatorio.Fields.Item("ID").Value)%>.gif" width="100" height="67" vspace="2" hspace="2" border="0"></a>         <%Rep_index=Rep_index+1Aleatorio_numRows=Aleatorio_numRows-1Aleatorio.MoveNext()Wend%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz uma busca por Random com BD, ou algo assim, pois já temos uma resposta para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

São sempre 5 imagens correto?

 

Então você cria uma array com somente os IDs randomizados... (é a parte mais f***)

 

Depois você cria um select assim

 

 

SQL = "SELECT img_url FROM tbl_imagens WHERE img_id="&idArray(0)&" AND img_id="&idArray(1)&" AND img_id="&idArray(2)&"  AND img_id="&idArray(3)&" AND img_id="&idArray(4)&" AND img_id="&idArray(5)

Detalhe, eu pensei nisso agora.. talvez eu esteja falando coco...mas o segredo está na array.. é só você não deixar repitir os ids..

 

creio eu! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

aeee......d.eelete. !!

 

 

boieeeeiiii !!! criar um array com id's randomicos....

 

tp vê c o meu raciocini tah certo ??

eu faço a coneção normal com o db...ae gero esse array com os id's....ae eu fecho a conexão e abro ela de novo com akele SQL q você me enviou ??? :unsure:

 

Tp tô ligado q tem uma função no PHP q você insere no SELECT dessa forma:

 

"SELECT * FROM mytable OODER BY mychave rand()"

Issu funciona no asp ????

 

alias eu deveria ter tentado utilizar issu antes de encher o saco de todo mundo...hehehe....mais sei lah....lembrei agora...

 

bom aguado resposta !

Compartilhar este post


Link para o post
Compartilhar em outros sites
aeee......d.eelete. !!

 

 

boieeeeiiii !!! criar um array com id's randomicos....

 

tp vê c o meu raciocini tah certo ??

eu faço a coneção normal com o db...ae gero esse array com os id's....ae eu fecho a conexão e abro ela de novo com akele SQL q você me enviou ??? :unsure:

 

Tp tô ligado q tem uma função no PHP q você insere no SELECT dessa forma:

 

"SELECT * FROM mytable OODER BY mychave rand()"

 

Issu funciona no asp ????

 

alias eu deveria ter tentado utilizar issu antes de encher o saco de todo mundo...hehehe....mais sei lah....lembrei agora...

 

bom aguado resposta !

Bem essa função não é do PHP, e sim da SQL, então funciona no ASP tb.

 

Só que isso só ordena randomicamente, não seleciona dados randomicos, por exemplo, se você colocar um Top 5 em seu select ele irá pegar os 5 seguidos e depois ordenar randomicamente.

 

Faz uma busca pois o Gastão postou um código que faz a busca randômica no BD sem repetição. tem no máximo uns 30 dias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahhh....

 

intaum quer dizer q a função rand() apenas ordena randomicamente.....

 

ae bicicleta vo entar utilizar seu código....achu q vai dar certo.....

 

valew pra todo mundo....qualquer coisa posto novamente...

 

te +!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, não sei se é exatamente isso... Mas, usando SQL Server 7 ou 2000 no Windows 2000:

SELECT TOP 5 <campo> FROM <tabela> ORDER BY NewID();
Em Windows 9x e numa tabela que possua um campo IDENTITY:

SELECT TOP 5 <campo> FROM <tabela> ORDER BY RAND((1000*CampoID)*DATEPART(millisecond, GETDATE()))

No caso do SQL Server 6.5, não tem jeito, precisamos saber quantos registros existem e fazer a randomização no ASP... Que também não é nem um pouco complicado... ;)

 

- Fernando Botelho

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.