Ir para conteúdo

POWERED BY:

Arquivado

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

lordnaicon

Random para 5 valores

Recommended Posts

Pessoal, criei o código abaixo para exibir alguns banners na minha página, o problema é que ele só mostra 1 banner de cada vez!!! Eu queria que mostrasse 5 banners de uma vez, alguém sabe como fazer isso?banners.open "SELECT * FROM banners where status='on' and tipo='later'", Conexao, 3, 3IF banners.EOF THEN response.write "<font face=verdana><h6>Não existe nenhum banner ativo</h6></font>"elserandomizerndMax = CInt(banners.RecordCount)banners.MoveFirstrndNumber = Int(RND * rndMax)banners.Move rndNumberend if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, criei o código abaixo para exibir alguns banners na minha página, o problema é que ele só mostra 1 banner de cada vez!!! Eu queria que mostrasse 5 banners de uma vez, alguém sabe como fazer isso?

Poxa, ninguém pode me ajudar??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem pensar:

banners.open "SELECT * FROM banners where status='on' and tipo='later'", Conexao, 3, 3

 

IF banners.EOF THEN

response.write "<font face=verdana><h6>Não existe nenhum banner ativo</h6></font>"

else

randomize

For x=1 to 5

  rndMax = CInt(banners.RecordCount)

  banners.MoveFirst

  rndNumber = Int(RND * rndMax)

  banners.Move rndNumber

  Response.Write seu banner

Next

end if

Agora, essa, de longe, não é a melhor forma, é só pensar um pouco e você fará isso diretamente na SQL! Qualquer duvida é só postar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí Salgado, primeiramente obrigado pela dica, mas eu já tentei isso e não deu certo.Isso funciona, porém dá repetição. Eu sou meio novato em asp e ia ficar feliz se você me ajudassem a resolver esse problema :) Segue o código completo: <%Set Conexao = Server.CreateObject("ADODB.Connection")Conexao.Open "Provider=Microsoft.JET.OLEDB.4.0; Data Source=d:\sites\radicalfesta\banco\radicalf.mdb"set banners = server.createobject("adodb.recordset")banners.open "SELECT * FROM banners where status='on' and tipo='later'", Conexao, 3, 3IF banners.EOF THEN response.write "<font face=verdana><h6>Não existe nenhum banner ativo</h6></font>"elserandomizeFor x=1 to 5 rndMax = CInt(banners.RecordCount) banners.MoveFirst rndNumber = Int(RND * rndMax) banners.Move rndNumber if banners("redirect") = "pop-up" then%> <script> function showads(){ janela=window.open('../admin/banners/redirbanner.asp?id=<%=banners("id")%>','ShowAd',"WIDTH=400,HEIGHT=300,toollbars=auto,status=auto,maximized=no"); janela.focus } </script> <a href=# onclick=showads() ><img src='../admin/banners/imagens/<%=banners("file1")%>' border='0' align="middle"></a>   <% elseif banners("redirect") = "link" then response.write "<a href='../admin/banners/redirbanner.asp?id="&banners("id")&"' target='_blank'><img border='0' src='../admin/banners/imagens/"&banners("file1")&"'></a>  " end ifset n_visual = conexao.execute("select num_visual from banners where id="&banners("id"))set atualiza = conexao.execute("update banners set num_visual='"&n_visual("num_visual")+1&"' where id="&banners("id"))Nextend ifbanners.closeset banners=nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, seu problema naum eh o ASP, e sim a instru'cao logica q tah usando

 

num sei se vai funcionar, mas tenta aih..... agora, se tu ker realmente fazer uma parada de Banners, pq naum usa o AdRotator ???????

se naum conhece ou tem alguma duvida, manda msg pra mim!!!! eh mto simples de usar!!!!

 

e desse jeito vai dar repeti'cao ainda.... to meio sem saco pra pensar em como retirar o erro... mas eh ideia eh salvar o id numa variavel e qdo a rotina for se repetir, verificar se o id jah foi usado ou naum.... aff, eh isso

 

[]'s

 

<%banners.open "SELECT * FROM banners where status='on' and tipo='later'", Conexao, 3, 3x = 0If banners.EOF THEN    response.write "<font face=verdana><h6>Não existe nenhum banner tivo</h6></font>"Else   Do While not banners.EOF        randomize        rndMax = CInt(banners.RecordCount)        banners.MoveFirst        rndNumber = Int(RND * rndMax)        banners.Move rndNumber            If banners.EOF Then                banners.MovePrevious            End If        x = x + 1        If x = 4 Then           Exit Do        End If    WendEnd if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aê Dimarcinho,Eu dei uma olhada no código e fiz esse outro que é beeeeeeeeeem diferente. Quase deu certo, exceto por um detalhe, nele a SQL busca 5 valores, só que de vez em quando aparecem 4!!!!!Olha só:banners.open "SELECT top 5 * FROM banners where status='on' and tipo='later'", Conexao, 3, 3IF banners.EOF THEN response.write "<font face=verdana><h6>Não existe nenhum banner ativo</h6></font>"elserandomizerndMax = CInt(banners.RecordCount)banners.MoveFirstrndNumber = Int(RND * banners("id"))*1response.write rndNumberbanners.Move rndNumberwhile not banners.eofresponse.write banners("id") if banners("redirect") = "pop-up" then%> <script> function showads(){ janela=window.open('../admin/banners/redirbanner.asp?id=<%=banners("id")%>','ShowAd',"WIDTH=400,HEIGHT=300,toollbars=auto,status=auto,maximized=no"); janela.focus } </script> <a href=# onclick=showads() ><img src='../admin/banners/imagens/<%=banners("file1")%>' border='0' align="middle"></a>   <% elseif banners("redirect") = "link" then response.write "<a href='../admin/banners/redirbanner.asp?id="&banners("id")&"' target='_blank'><img border='0' src='../admin/banners/imagens/"&banners("file1")&"'></a>  " end ifset n_visual = conexao.execute("select num_visual from banners where id="&banners("id"))set atualiza = conexao.execute("update banners set num_visual='"&n_visual("num_visual")+1&"' where id="&banners("id"))banners.movenextwendend ifbanners.closeset banners=nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, sabe qual eh o problema ?você usa um While not rs.EOF etc Wendporem, dentro desse 'etc' tah randomizando..... e se cair justamente no ultimo banner do BD ??? isto vai lher dar TRUE no rs.EOF e o loop serah finalizado.... por isso no meu codigo, eu fiz verificia'cao com IF... caso fosse true, ele voltava 1, tornando falsoeh isso []'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bicicleta, você traduziu meu pensamento em código.Só tem um porém, dentro do FOR, o id_select tá repetindo algumas vezes o mesmo id.Tô tentando fazer algo do tipo se id_select = id_select then i = i-1Mas se alguém souber como fazer isso sinta-se à vontade para postar aqui!!!Valeu mesmo!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui!!!!!!!!!!!!!!!!!!!11 :lol: :lol: :lol: :lol: :lol: :lol: :lol: Valeu por tudo pessoal, vou postar aqui, caso algum conmpanheiro ASPer precise!!!!!!! :D :D :D <%Set Conexao = Server.CreateObject("ADODB.Connection")Conexao.Open "Provider=Microsoft.JET.OLEDB.4.0; Data Source=d:\sites\radicalfesta\banco\radicalf.mdb"Set rs = Conexao.Execute("SELECT * FROM banners WHERE status='on' AND tipo='later'")While not rs.EOF If ids = "" Then ids = rs("id") Else ids = ids & "," & rs("id") End If rs.MoveNextWendvar_ids = Split(ids, ",")total_ids = UBound(var_ids)total_banners = 5For i = 1 TO total_banners Randomize() numero_sorteado = (total_ids * RND)id_select = id_select If Instr(id_select, var_ids(numero_sorteado) & ",") <> 0 Then i = i - 1 else i = i end if id_select = id_select & var_ids(numero_sorteado) & ","NextSet banners = Conexao.Execute("SELECT * FROM banners WHERE id IN ("& id_select &") order by id desc")while not banners.eof%><br><br><% if banners("redirect") = "pop-up" then%> <script> function showads(){ janela=window.open('../admin/banners/redirbanner.asp?id=<%=banners("id")%>','ShowAd',"WIDTH=400,HEIGHT=300,toollbars=auto,status=auto,maximized=no"); janela.focus } </script> <a href=# onclick=showads() ><img src='../admin/banners/imagens/<%=banners("file1")%>' border='0' align="middle"></a>   <% elseif banners("redirect") = "link" then response.write "<a href='../admin/banners/redirbanner.asp?id="&banners("id")&"' target='_blank'><img border='0' src='../admin/banners/imagens/"&banners("file1")&"'></a>  " end ifset n_visual = conexao.execute("select num_visual from banners where id="&banners("id"))set atualiza = conexao.execute("update banners set num_visual='"&n_visual("num_visual")+1&"' where id="&banners("id"))banners.movenextwend%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,Ajuda eu... nesse codigo ai do cereal e do bicicleta, se eu coloco 5 banners ele mostra em sequencia... tava querendo montar um esquema tipo do admentor, ou seja, uma function passando parametros tipo banner(q=5) onde "q" seria a quantidade de banner exibidos na pagina, e em cada lugar da pagina que eu inserisse essa function seria inserido um banner apenas, não todos em sequencia, sacaram? é dificil fazer isso?Valeu :rolleyes:

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.