Jump to content


Photo

Banner Rotativo Sem Repetir...


  • Faça o login para participar
8 replies to this topic

#1 leanjo

leanjo

    Doutor

  • Usuários
  • 912 posts
  • Sexo:Não informado
  • Interesses:...

Posted 05/06/2005, 13:48

opa
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 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 05/06/2005, 13:55

Você pode fazer o seguinte:

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. ;)
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 lazerediversao

lazerediversao

    Lazer e Diversão - O seu portal de entretenimento é aqui.

  • Usuários
  • 256 posts
  • Sexo:Masculino
  • Localidade:Guarulhos / São Paulo

Posted 05/06/2005, 22:00

E ai pessoal.

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. (y)

Edição feita por: lazerediversao, 05/06/2005, 22:09.

################# DADOS #################
# NOME: Rafael T. Coelho
# SITE: Lazer e Diversão
# CONHECIMENTOS: HTML, Java Script, CSS e ASP
#######################################

#4 Alex Hernandes

Alex Hernandes

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 06/06/2005, 13:00

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
raole não entra em mar grande

#5 lazerediversao

lazerediversao

    Lazer e Diversão - O seu portal de entretenimento é aqui.

  • Usuários
  • 256 posts
  • Sexo:Masculino
  • Localidade:Guarulhos / São Paulo

Posted 06/06/2005, 18:11

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

Cara não consegui compreender o seu racioncínio. :blink:

Se der para vc esplicar mais um pouco detalhado, serei grato. (y)
################# DADOS #################
# NOME: Rafael T. Coelho
# SITE: Lazer e Diversão
# CONHECIMENTOS: HTML, Java Script, CSS e ASP
#######################################

#6 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 06/06/2005, 18:14

SELECT * FROM banners ORDER BY RAND() LIMIT 5
Klaus Paiva
Conheça também: Taperás

#7 Luis Otávio

Luis Otávio

    Super Veterano

  • Usuários
  • 3113 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre
  • Interesses:- Desenvolvimento de aplicações Web com linguagem server-side PHP.

    - Desenvolvimento de aplicações Web com linguagem cliente-side JavaScript, conhecedor e utilizador da biblioteca jQUERY e todas suas características.

    - Otimização de Desempenho aplicados a performance de banco de dados Mysql.

    - Otimização de Desempenho para servidores Web utilizando-se como Webserver NGINX em conjunto com Varnish.

    - Sólidos conhecimentos no CMS WordPress para novas implementações, manutenção, criação e otimização de Plugins.

    - Práticas de atendimento, relacionamento e suporte ao cliente. Trabalhando voltado ao público desde o lançamento da empresa iPORTO.COM, criando laços e vínculos com os mais de Mil clientes da empresa e os braços do grupo.

Posted 06/06/2005, 18:50

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

Cara não consegui compreender o seu racioncínio. :blink:

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

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...
só tem um porem no codigo do alex, depois q ele mostrar todos os banners... num vai mostrar mais nenhum :wacko: dai vc teria que apagar a sessão, quando chegasse no total de banners...



PS:
Klaus, num entendi sua solução... vc vai mostrar 5 banners por vez?
* Otávio Nogueira
* 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 Generation

Generation

    Super Veterano

  • Usuários
  • 1546 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 07/06/2005, 00:26

Será que assim daria certo...
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+
Favoritos : | OpenSuse | Opera | Firefox | NetBeans | GMail | Leia As Regras | Use a Busca | Como fazer Perguntas Inteligentes |
“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 Worm

Worm

    Veterano

  • Ex-Admins
  • 1343 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Obter o maximo conhecimento.

Posted 07/06/2005, 11:33

SELECT * FROM banners ORDER BY RAND() LIMIT 5

Isso seria em Mysql ? e em MSSql como fica ?:


Até.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq