
Banner Rotativo Sem Repetir...
#1
Posted 05/06/2005, 13:48
tenho uma tabela na direita do site com espaco pra 5 banners
sendo que eu queria fazer com que o banner nao se repetisse... tipo assim
banner 1
banner 4
banner 2
banner 1
banner 5
precisa de um laco que nao estou sabendo fazer, alguem tem uma dica ai?
valeuuuuuuuuuu
[]'s
#2
Posted 05/06/2005, 13:55
Sortea um número, daí cada número é associado a uma banner, como num Array.
Então, a cada loop você acrescenta +1, daí quando o valor acrescentado chegar no valor igual a quantidade de banners, você zera o contador e começa a pegar os primeiros registros.
Exemplo:
Você tem 10 banners, quer exibir 5 e o número sorteado foi 7:
Fica:
Banner 7
Banner 8
Banner 9
Banner 10
Banner 1
É uma forma de fazer.

[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
#3
Posted 05/06/2005, 22:00
Vamos supor o seguinte.
Eu fiz um sistema da seguinte forma cadastro os banners e cada banner tem um id.
Ai fiz o seguinte quando ele é exibido eu crio uma seção tipo Session("banner") = id_do_banner, quando ele atualizar novamente eu faço a verificação If Session("banner") = id_atual ai caso seja igual eu atualizo a página novamente até ele encontrar um banner diferente do gravado na seção.
Até ai blz então por exemplo entrei no site e ele exibiu o banner 1 ao atualizar e tenta exibir o banner 1 novamente então ele atualiza e exibe o banner 5 ai grava a seção mas ai algumas vezes após atualizar volta o banner 1 novamente.
Bem eu consegui diminuir bastante a quantidade de repetição fazendo o seguinte antes ao fazer a busca eu faço pelos banners com menos exibições e também uso esse método mas mesmo assim ainda tem uma certa seqüencia de repetições se alguém tiver mais alguma idéia para acabar ou diminuir serei grato.
Sem mais agradeço a todos pela atenção dispençada.

Edição feita por: lazerediversao, 05/06/2005, 22:09.
# NOME: Rafael T. Coelho
# SITE: Lazer e Diversão
# CONHECIMENTOS: HTML, Java Script, CSS e ASP
#######################################
#4
Posted 06/06/2005, 13:00
If Session("banners") = "" then
Session("banners") = Int(BannerID)
Else
Session("banners") = Session("banners") & "," & Int(BannerID)
End If
Depois você exclui eles do seu select
SQLban = "SELECT * FROM... WHERE BannerID NOT IN (" & Session("banners") & ")
Não testei com MySQL, mas tenho quase certeza que rola
#5
Posted 06/06/2005, 18:11
Cara não consegui compreender o seu racioncínio.Primeiro guarda os banners que já foram exibidos.
If Session("banners") = "" then
Session("banners") = Int(BannerID)
Else
Session("banners") = Session("banners") & "," & Int(BannerID)
End If
Depois você exclui eles do seu select
SQLban = "SELECT * FROM... WHERE BannerID NOT IN (" & Session("banners") & ")
Não testei com MySQL, mas tenho quase certeza que rola

Se der para vc esplicar mais um pouco detalhado, serei grato.

# NOME: Rafael T. Coelho
# SITE: Lazer e Diversão
# CONHECIMENTOS: HTML, Java Script, CSS e ASP
#######################################
#6
Posted 06/06/2005, 18:14
#7
Posted 06/06/2005, 18:50
coloca os banners que ja foram sorteados em uma variavel, depois faz um select IN NOT, isso é seleciona todos os banners, menos os q estão na variavel... isso é menos os que ja apreceram...Cara não consegui compreender o seu racioncínio.Primeiro guarda os banners que já foram exibidos.
If Session("banners") = "" then
Session("banners") = Int(BannerID)
Else
Session("banners") = Session("banners") & "," & Int(BannerID)
End If
Depois você exclui eles do seu select
SQLban = "SELECT * FROM... WHERE BannerID NOT IN (" & Session("banners") & ")
Não testei com MySQL, mas tenho quase certeza que rola![]()
Se der para vc esplicar mais um pouco detalhado, serei grato.![]()
só tem um porem no codigo do alex, depois q ele mostrar todos os banners... num vai mostrar mais nenhum

PS:
Klaus, num entendi sua solução... vc vai mostrar 5 banners por vez?
* Administração e Configuração de Servidores;
* Combinação Perfeita: NGINX + PHP + VARNISH + HAPROXY
* otavio*iporto.com ~ Tel: +55 51 3366 0177 | +55 51 4063 7343 |
* @iporto
#8
Posted 07/06/2005, 00:26
Mais um campo no banco chamado Views, onde e voce seleciona somente os cinco menos visualizados e acrescenta +1 no campo Views, assim todos seriam exibidos a mesma quantidade de vezes...e sem repetir....será?
T+
“Obstáculos são aquelas coisas medonhas que você vê quando tira seus olhos de seu objetivo” (Henry Ford)
“É impossível para um homem aprender aquilo que ele acha que já sabe.” (Epíteto)
“A única razão da existência do tempo é para que todas as coisas não aconteçam de uma vez.”(Albert Einstein)
#9
Posted 07/06/2005, 11:33
Isso seria em Mysql ? e em MSSql como fica ?:SELECT * FROM banners ORDER BY RAND() LIMIT 5
Até.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)