Sign in to follow this  
tsarri

Problemas Com Banners

Recommended Posts

salve galera estou com uma duvida em um sistema de banners....

é o seguinte vamos supor que eu tenho 3 banners A, B e C eu quero que o A apareça 3 vezes o B 4, e o C 1 vez certo, então seria: A, A, A, B, B, B, B, C e começa tudo de novo.

bom como eu faria para ir ao proximo banner a quantidade de vezes que vai aparecer eu posso usar um contador = contador + 1

If contador = 3 then

proximo banner

End If

a minha dificuldade é saber o proximo depois que o A aparece 3 e jogar pro B, alguém tem uma ideia boa aí??

Share this post


Link to post
Share on other sites

Voce pode montar uma função onde voce passa a letra e o numero de voltas do loop. Exemplo:

<%
function Banner(letra, contador)

for i=1 to contador
    response.write letra
next

end function


response.write Banner("A", 3)
response.write Banner("B", 3)
response.write Banner("C", 1)
%>

Share this post


Link to post
Share on other sites

legal mais lembrando que estas informações A, B e C eu estou trazendo do banco ok

e tera que apareçer um banner de cada vez esta função vai dar certo para o que eu quero??

Share this post


Link to post
Share on other sites
legal mais lembrando que estas informações A, B e C eu estou trazendo do banco ok

é só jogar a função dentro do while...

e tera que apareçer um banner de cada vez esta função vai dar certo para o que eu quero??

não entendi sua duvida

Share this post


Link to post
Share on other sites

olha o codigo aí para ficar mais facil:

<%

'Faço um select que ira trazer todos os banners

SqlIdPainel = "Select * "_

& " From Publicidade "_

& " Where Ativo = 1 "_

& " And dataentrada <= Now() "_

& " And (datasaida >= Now() Or datasaida = 0) "_

& " Order By idpublicidade "

Set RsIdPainel = cnbanco.Execute(SqlIdPainel)

If Not RsIdPainel.EOF Then

While Not RsIdPainel.EOF

'faço outro select que ira trazer o total de impressoes de cada banner

SqlGPainel = "Select Sum(importancia) As Total "_

& " From Publicidade "_

& " Where idpublicidade = " & RsIdPainel("idpublicidade") & " "

Set RsGPainel = cnbanco.Execute(SqlGPainel)

Response.Write(RsGPainel("Total") & " - ")

Response.Write(RsIdPainel("nome") & "<br>")

RsIdPainel.MoveNext

Wend

End If

%>

so que ele esta trazendo todos os banners de uma vez exemplo:

A

B

C

eu quero assim o banner A sozinho se eu atualizar a pagina 3 vezes ira pro B se eu atualizar 4 vezes ira pro C e se eu atualizar ira pro A ou seja ira recomeçar

como fazer isto??

Share this post


Link to post
Share on other sites

está trazendo os 3 de uma vez porque chamou-se a função seguidamente. Se eu entendi.. voce vai atualizando a pagina e vai exibindo as letras?

Nesse caso voce precisa juntar outra logica, algo que identifique quando o usuario atualizou a pagina e ai dispara a função pra exibir as letras.

Pode-se fazer isso com session, a cada vez que ele atualizar, a session soma 1. Ai faz um IF pra comparar a quantidade de atualizaçoes que foram feitas.

Share this post


Link to post
Share on other sites

então eu fiz um if com session("qtd") que mostra pra mim as quantidades de cada banner e outro session("id") que mostra pra mim todos os id que eu deve mostrar ou sej a, b, c, d

aí eu fiz o If Session("qtd") = 3 then

vai pro B

End If

e funcionou o problema é quando eu adiciono um banner vamos supor que eu adicione o banner D

ele não grava no meu session("id") = A, B, C, D

ele so fica gravado o a, b e c

aí gera um erro por isso eu queria saber se tem como em recordset eu movimentar para o proximo banner as quantiades pode ser gravada em session sem problemas...

Share this post


Link to post
Share on other sites
está meio dificil de entende a sua aplicação... mas não seria então o caso de um IF dentro do while, comparando com a session e se for verdadeiro então move-se o ponteiro (movenext)

Share this post


Link to post
Share on other sites

ola andreia

eu fiz assim agora:

<%

'Faço o select que ira trazer todos os banners

SqlIdPainel = "Select * "_

& " From Publicidade "_

& " Where Ativo = 1 "_

& " And dataentrada <= Now() "_

& " And (datasaida >= Now() Or datasaida = 0) "_

& " Order By idpublicidade "

Set RsIdPainel = Server.CreateObject("ADODB.Recordset")

Set RsIdPainel = cnbanco.Execute(SqlIdPainel)

If Not RsIdPainel.EOF Then

'Verifico se a sessao do contador é null se for deixa com o valor 0

If Session("Contador") = "" Then

Session("Contador") = 0

End If

'Começo a fazer o loop

While Not RsIdPainel.EOF

'Faço o select para saber a quantidade de impressões de cada banners

SqlGPainel = "Select Sum(importancia) As Total "_

& " From Publicidade "_

& " Where idpublicidade = " & RsIdPainel("idpublicidade") & " "

Set RsGPainel = cnbanco.Execute(SqlGPainel)

'Conto o contador com o + 1

Session("Contador") = Session("Contador") + 1

'Aqui sera o responses do banner

Response.Write(RsGPainel("Total") & " - " & Session("Contador") & " - ")

Response.Write(RsIdPainel("idpublicidade") & "<br>")

'Faço a verificação se o contador = total de impressoes então move next

If Session("Contador") = CInt(RsGPainel("Total")) Then

Session("Contador") = 0

RsIdPainel.MoveNext

End If

Wend

End If

%>

esta beleza so um problema ele esta trazendo todos os banners, eu quero um banner por pagina

Exe: A, depois de atualizar o B, depois de atualizar o B, e despois de atualizar o C

Ele esta trazendo assim:

A

B

B

C

o que vai para trazer um banner por vez ???

Share this post


Link to post
Share on other sites
mas voce quer um banner por pagina ou um banner por atualização da pagina? voce não tem um link onde possamos ver para entender melhor?

Share this post


Link to post
Share on other sites

a andreia eu consegui brigado

eu queria um banner por pagina mais cada banner pode imprimir na tela varias vezes

o site é este apesar que tem varios banners porque são de categorias diferentes

http://www.vejacomoefacil.com.br/publicidade

olha o codigo aí, usei session e array para melhorar o esquema..

<%

Dim idselo2

Dim zselo2

idselo2 = array()

zselo2 = 1

'faço um select para descubrir o total de banners que atualmente é 5

SqlTselo2 = "Select Count(*) As Total "_

& " From Publicidade "_

& " Where Ativo = 1 "_

& " And Tipo = 2 "_

& " And Nivel = 2 "_

& " And dataentrada <= Now() "_

& " And (datasaida >= Now() Or datasaida = 0) "

Set RsTselo2 = cnbanco.Execute(SqlTselo2)

valorTselo2 = RsTselo2("total")

'Faço outro select para saber o total da quantidade de impressões deste 5 banners que é 10

SqlGselo2 = "Select Sum(importancia) As Total "_

& " From Publicidade "_

& " Where Ativo = 1 "_

& " And Tipo = 2 "_

& " And Nivel = 2 "_

& " And dataentrada <= Now() "_

& " And (datasaida >= Now() Or datasaida = 0) "

Set RsGselo2 = cnbanco.Execute(SqlGselo2)

'Faço uma verificação se qtd = 5 e gqtd = 10 Então eu reinicio as variaveis e começo a contar os banners deste o primeiro

If CInt(valorTselo2) <> 0 Then

If Session("qtd_selo2") = CInt(RsTselo2("total")) And Session("gqtd_selo2") = CInt(RsGselo2("Total")) Or (Session("qtd_selo2") > CInt(RsTselo2("total"))) Then

Session("qtd_selo2") = 0

Session("id_selo2") = ""

Session("v_selo2") = 0

Session("gqtd_selo2") = 0

End If

'-------------------------------------------------------------------------

'verifico se o ID do banner é nullo se for eu atribuo a primeira ID cadastrado a ele

'(o Session("id") so sera = "" quando eu reinicio o sistema ou quando eu abro pela primeira vez a pagina)

Sqlidselo2 = "Select * "_

& " From Publicidade "_

& " Where Ativo = 1 "_

& " And Tipo = 2 "_

& " And Nivel = 2 "_

& " And dataentrada <= Now() "_

& " And (datasaida >= Now() Or datasaida = 0) "_

& " Order By idpublicidade "

Set Rsidselo2 = cnbanco.Execute(Sqlidselo2)

'Verifico se o id_selo2 é igual a branco se for eu jogo o primeiro banner pra ele

If session("id_selo2") = "" Then

Session("id_selo2") = CInt(Rsidselo2("idpublicidade"))

End If

'Faço o loop para recuperar todos os ids em tempo real

While Not Rsidselo2.EOF

'Aqui eu começo a recuperar todos os id

ReDim preserve idselo2(UBound(idselo2)+1)

Session("idselo2" & (Ubound(idselo2))) = Rsidselo2("idpublicidade")

zselo2=zselo2+1

Rsidselo2.MoveNext

Wend

'--------------------------------------------------------------------------

'Aqui eu faço o select do banner

If Session("qtd_selo2") = "" Then

Session("qtd_selo2") = 0

End If

Sqlselo2 = "SELECT * FROM Publicidade Where idpublicidade = " & Session("idselo2"&(Session("qtd_selo2")))

Set Rsselo2 = cnbanco.Execute(Sqlselo2)

If Not Rsselo2.EOF Then

'verifico qual é a extensao do arquivo swf = flash

If Right(Rsselo2("arquivo"), 3) = "swf" Then

%>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0">

<param name="movie" value="<%=caminho%>\muitofacil\upload\online\publicidade\<%=Rsselo2("arquivo")%>">

<param name="quality" value="high">

<embed src="<%=caminho%>\muitofacil\upload\online\publicidade\<%=Rsselo2("arquivo")%>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>

</object>

<%

Else

'senao sera img aí eu verifico se tem link

If Rsselo2("link") <> "" Then %>

<a href="<%=Rsselo2("link")%>" target="<%=Rsselo2("Tipolink")%>">

<% End If %>

<img src="<%=caminho%>\muitofacil\upload\online\publicidade\<%=Rsselo2("arquivo")%>">

<% If Rsselo2("link") <> "" Then %>

</a>

<%

End If

End If

'Faço o update do numeros de impressoes

SqlNrosselo2 = "Update publicidade "_

& " Set "_

& " nrosimp = nrosimp + 1 "_

& " Where idpublicidade = " & Rsselo2("idpublicidade") & " "

Set RsNrosselo2 = cnbanco.Execute(SqlNrosselo2)

'somo o geral quantidade + 1

Session("gqtd_selo2") = Session("gqtd_selo2") + 1

'Soma o vizualização + 1

Session("v_selo2") = Session("v_selo2") + 1

'Aqui eu verifico se a vizualização = qtd (é a quantidade determinada por cada Banner pode ser 1, 2, 3 e ect)

If session("v_selo2") = CInt(Rsselo2("importancia")) Then

'atribuo o vizualição = 0 para contar para o proximo banner

session("v_selo2") = 0

'atribuo a quantidade + 1 que é a quantidade de banners que no total = 5

Session("qtd_selo2") = Session("qtd_selo2") + 1

End If

End If

End If

%>

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this