Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Com Banners


tsarri

Pergunta

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í??

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

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)
%>

Link para o comentário
Compartilhar em outros sites

  • 0

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??

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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...

Link para o comentário
Compartilhar em outros sites

  • 0

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 ???

Link para o comentário
Compartilhar em outros sites

  • 0

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

%>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...