Jump to content


Photo

Banner Mudando De Lugar


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

#1 boari

boari

    24 Horas

  • Usuários
  • 411 posts
  • Sexo:Masculino
  • Localidade:São joão Del Rei - Minas Gerais
  • Interesses:PHP, MySQL, SQL Server

Posted 24/09/2004, 14:08

Pessoal,

tá dificil aqui viu.

Olha só, o que eu queria era fazer vários banners ficarem alternando entre eles. Por exemplo:

na mesma pagina tem uma parte onde ficam os banners:

banner1
banner2
banner3

daí quando atualizar eles ficam assim

banner2
banner1
banner3

Lí aqui no fporum mas o pessoal só fala de banner randomico que quando atualiza troca o banner e não é isso que preciso.

Tenho o código:

<?php
$banner[1][imagem] = "banner1.gif";
$banner[1][url] = "http://www.site.com.br/";
$banner[1][alt] = "CLique aqui!";

$banner[2][imagem] = "banner2.gif";
$banner[2][url] = "http://www.site.com.br/";
$banner[2][alt] = "Clique aqui!";

$banner[3][imagem] = "banner3.gif";
$banner[3][url] = "http://www.site.com.br/";
$banner[3][alt] = "Clique aqui!";

// rotacionando
$r = rand(1,sizeof($banner));

// exibindo o banner
echo '<a href="'.$banner[$r][url].'"><img src="'.$banner[$r][imagem].'" alt="'.$banner[$r][alt].'" border="0"></a>';
?>

este código funciona que é uma blz, mas faz a mesma coisa que citei acima, troca somente o banner, mas preciso de uma troca entre os banners.
Será que tem como adaptar esse código pra fazer dessa forma que preciso?



Valeus

Otavio Boari

Edição feita por: boari, 24/09/2004, 14:09.


#2 fly2k

fly2k

    Super Veterano

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

Posted 24/09/2004, 14:15

deixa eu ver....vc quer que durante a visualização da página...ele troque de banner....???
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#3 boari

boari

    24 Horas

  • Usuários
  • 411 posts
  • Sexo:Masculino
  • Localidade:São joão Del Rei - Minas Gerais
  • Interesses:PHP, MySQL, SQL Server

Posted 24/09/2004, 15:31

Esse código que passei ele faz com que o banner 120x90 que está, por exemplo, no lado direito do site fique mudando as figuras. Ora aparece o banner 1 ora aparece o banner 2 ou 3... e assim vai....aleartoriamente...

mas eu preciso é o seguinte
que apareçam os 3 banners na tela e eles alternem entre sí. Sem repetir

em vez de:
(espaço do banner) <--- aqui fica toda hora alternando entre o banner1.gif, banner2.gif e banner3.gif


preciso assim:
(espaço do banner)
(espaço do banner)
(espaço do banner)
Vão alternando cada hora um aparece numa posição. Já que eu tenho somente 3 banners e 3 espaços para banners, cada hora um fica num lugar sem repetir....entendeu?


Espero ter explicado e possa me ajudar nessa...

vlws


Otavio Boari

#4 victormangia

victormangia

    Doutor

  • Usuários
  • 783 posts
  • Sexo:Masculino
  • Localidade:barra mansa - rj

Posted 24/09/2004, 18:18

PQ VC NÃO USA A FUNÇÃO RAND DO SQL
E COLOCA CADA BANER COMO UMA VARIAVEL?

Edição feita por: victormangia, 24/09/2004, 18:20.


#5 boari

boari

    24 Horas

  • Usuários
  • 411 posts
  • Sexo:Masculino
  • Localidade:São joão Del Rei - Minas Gerais
  • Interesses:PHP, MySQL, SQL Server

Posted 24/09/2004, 18:50

PQ VC NÃO USA A FUNÇÃO RAND DO SQL
E COLOCA CADA BANER COMO UMA VARIAVEL?

mas já num é isso que tá no código????

#6 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 25/09/2004, 01:07

Randomize os indices do array não somente escolha um pelo que é feito :S

<?php
$banner[][imagem] = "banner1.gif";
$banner[][url] = "http://www.site.com.br/";
$banner[][alt] = "CLique aqui!";

$banner[][imagem] = "banner2.gif";
$banner[][url] = "http://www.site.com.br/";
$banner[][alt] = "Clique aqui!";

$banner[][imagem] = "banner3.gif";
$banner[][url] = "http://www.site.com.br/";
$banner[][alt] = "Clique aqui!";

// rotacionando
$r = array_rand($banner,count($banners));

// exibindo o banner
echo '<a href="'.$banner[$r[0]][url].'"><img src="'.$banner[$r[0]][imagem].'" alt="'.$banner[$r[0]][alt].'" border="0"></a>';
echo '<a href="'.$banner[$r[1]][url].'"><img src="'.$banner[$r[1]][imagem].'" alt="'.$banner[$r[1]][alt].'" border="0"></a>';
echo '<a href="'.$banner[$r[2]][url].'"><img src="'.$banner[$r[2]][imagem].'" alt="'.$banner[$r[2]][alt].'" border="0"></a>';
?>


#7 boari

boari

    24 Horas

  • Usuários
  • 411 posts
  • Sexo:Masculino
  • Localidade:São joão Del Rei - Minas Gerais
  • Interesses:PHP, MySQL, SQL Server

Posted 27/09/2004, 19:43

Randomize os indices do array não somente escolha um pelo que é feito :S

<?php
$banner[][imagem] = "banner1.gif";
$banner[][url] = "http://www.site.com.br/";
$banner[][alt] = "CLique aqui!";

$banner[][imagem] = "banner2.gif";
$banner[][url] = "http://www.site.com.br/";
$banner[][alt] = "Clique aqui!";

$banner[][imagem] = "banner3.gif";
$banner[][url] = "http://www.site.com.br/";
$banner[][alt] = "Clique aqui!";

// rotacionando
$r = array_rand($banner,count($banners));

// exibindo o banner
echo '<a href="'.$banner[$r[0]][url].'"><img src="'.$banner[$r[0]][imagem].'" alt="'.$banner[$r[0]][alt].'" border="0"></a>';
echo '<a href="'.$banner[$r[1]][url].'"><img src="'.$banner[$r[1]][imagem].'" alt="'.$banner[$r[1]][alt].'" border="0"></a>';
echo '<a href="'.$banner[$r[2]][url].'"><img src="'.$banner[$r[2]][imagem].'" alt="'.$banner[$r[2]][alt].'" border="0"></a>';
?>

Olha o que deu...

Warning: array_rand(): Second argument has to be between 1 and the number of elements in the array in c:\arquivos de programas\easyphp1-7\www\banner\banner.php on line 15



#8 jfsmi

jfsmi

    12 Horas

  • Usuários
  • 201 posts
  • Sexo:Masculino

Posted 28/09/2004, 00:30

Olá Boari,

Num sou expert no assunto, mas pq vc num tenta fazer essa rotação dos banners usando um banco de dados (BD)? A lógica seria algo + ou - assim:

1) Você cria um BD com os seguintes campos: banner1, banner2 e banner3;
2) Nestes campos deve constar os números 1, 2 ou 3;
3) Cada vez que o internauta abrir a página uma função chama do BD o número que está em cada campo.
4) Se banner1=1 retorna imagem propaganda1.gif, soma mais 1 e grava no BD banner1=2 (o mesmo com os outros banners nos outros espaços da página);
5) Se banner1=2 retorna imagem propaganda2.gif, soma mais 1 e grava no BD banner1=3 (o mesmo com os outros banners nos outros espaços da página);
6) Se banner1=3 retorna imagem propaganda3.gif, diminui 2 e grava no BD banner1=1 e assim começa tudo de novo;

Eu passei apenas a lógica da minha idéia. Conforme meu tempo permitir, vou tentar criar o script. Se alguém tiver outra idéia, por favor, tbém estou interessado!!!

Valeu, T+

Não sou expert... mas tento ajudar! Mas o que mais preciso é de ajuda! hehehe


#9 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

Posted 28/09/2004, 01:14

Está

$r = array_rand($banner,count($banners));

Eu errei é $banner, não $banners :S

$r = array_rand($banner,count($banner));


#10 jfsmi

jfsmi

    12 Horas

  • Usuários
  • 201 posts
  • Sexo:Masculino

Posted 28/09/2004, 09:01

Olá Thiagorsl,

Testei seu script e não funcionou - não apareceu as imagens e nem mudaram de lugar - apenas os links funcionaram, mas à cada atualização permaneciam no mesmo lugar.

Testei o primeiro script apresentado pelo Boari, apenas acrescentei os $r2 e $r3 e os echos, conforme abaixo:

// rotacionando
$r1 = rand(1,sizeof($banner));
$r2 = rand(1,sizeof($banner));
$r3 = rand(1,sizeof($banner));

// exibindo o banner
echo '<a href="'.$banner[$r1][url].'"><img src="'.$banner[$r1][imagem].'" alt="'.$banner[$r1][alt].'" border="0"></a><br>';
echo '<a href="'.$banner[$r2][url].'"><img src="'.$banner[$r2][imagem].'" alt="'.$banner[$r2][alt].'" border="0"></a><br>';
echo '<a href="'.$banner[$r3][url].'"><img src="'.$banner[$r3][imagem].'" alt="'.$banner[$r3][alt].'" border="0"></a><br>';

... porém, este script rotaciona aleatoriamente cada um. Não há segurança de que os banners não se repetirão numa mesma apresentação. Só para vc ter uma idéia, nos meus testes houve momentos que nos 3 espaços para os banners apareceu o mesmo banner nos 3 locais.

E pelo que entendi, o Boari não quer repetição numa mesma apresentação, apenas que troquem de lugar. Por outro lado gostei deste script quando se usa apenas 1 espaço para banner - funcionou a rotação!

Valeu, t+

Não sou expert... mas tento ajudar! Mas o que mais preciso é de ajuda! hehehe


#11 boari

boari

    24 Horas

  • Usuários
  • 411 posts
  • Sexo:Masculino
  • Localidade:São joão Del Rei - Minas Gerais
  • Interesses:PHP, MySQL, SQL Server

Posted 28/09/2004, 11:23

Pois é pessoal,

o script rotacionando 1 banner é realmente muito bom mas não se encaixa no que eu preciso.

O problema de rotacionar os 3 entre sí é realmente não deixar que aconteça repetições na mesma página...Isso tá duro de fazer...

A idéia do BD é boa e parece funcionar sim...vou tentar isso tb...

Otavio Boari

#12 fly2k

fly2k

    Super Veterano

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

Posted 28/09/2004, 14:06

aff....combine java script com php......php para trazer os banners do bd... e javascript para rotacionar...por exemplo....a cada 30 segundos ele muda....
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#13 boari

boari

    24 Horas

  • Usuários
  • 411 posts
  • Sexo:Masculino
  • Localidade:São joão Del Rei - Minas Gerais
  • Interesses:PHP, MySQL, SQL Server

Posted 01/10/2004, 10:51

aff....combine java script com php......php para trazer os banners do bd... e javascript para rotacionar...por exemplo....a cada 30 segundos ele muda....

fly2k,

o que acontece é que não é ficar mudando de tempo em tempo. Preciso que quando entrar cada banner vai tá num lugar diferente. Se entrar de novo muda, entende?

Vlws
Otavio Boari

#14 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 01/10/2004, 12:18

Very Simples ;)

Se der algum tipo de erro Grita por que num testei e posso ter esquecido algo ...

PHP
<?php
$banner
= $banners = array();
$banner[0] = array("banner1.gif", "http://www.site.com.br/", "CLique aqui!");
$banner[1] = array("banner2.gif", "http://www.site.com.br/", "CLique aqui!");
$banner[2] = array("banner3.gif", "http://www.site.com.br/", "CLique aqui!");

function
ChamaBanner() {
global
$banner, $banners;
for (
$i = "0";; $i++) {
  $banner_rand = rand("0", (count($banners) - 1));
  if (!isset($banners[$banner_rand])) {
   $banner_html = '<a href="' . $banner[$banner_rand]["1"] . '"><img src="' . $banner[$banner_rand]["0"] . '" alt="' . $banner[$banner_rand]["2"] . '" border="0"></a>';
   $banners[$banner_rand] = true;
   break;
  }
}
return
$banner_html;
}

// Exibe os Banners
echo ChamaBanner(); // Banner 1...
echo ChamaBanner(); // Banner 2...
echo ChamaBanner(); // Banner 3...
?>

Edição feita por: sk15, 01/10/2004, 12:20.


#15 1nc1ud3

1nc1ud3

    Novato no fórum

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

Posted 01/10/2004, 15:55

Olha ve se funciona, qualquer duvida posta que vejo para você.

PHP
<?php
$banner
= $banners = array();
$banner[0] = array("url-banner1.gif", "http://www.urldolink.com.br/", "Banner 1");
$banner[1] = array("url-banner2.gif", "http://www.urldolink.com.br/", "Banner 2");
$banner[2] = array("url-banner3.gif", "http://www.urldolink.com.br/", "Banner 3");

function
MostrarBanner() {
global
$banner, $banners;
for (
$i = "0";; $i++) {
$banner_rand = rand("0", (count($banners) - 1));
if (!isset(
$banners[$banner_rand])) {
 
$banner_html = '<a href="' . $banner[$banner_rand]["1"] . '"><img src="' . $banner[$banner_rand]["0"] . '" alt="' . $banner[$banner_rand]["2"] . '" border="0"></a>';
 
$banners[$banner_rand] = true;
 break;
}
}
return
$banner_html;
}

// Exibe os Banners em modo de rotação!!!
echo MostrarBanner(); // mostra banner 1
echo MostrarBanner(); // mostra banner 2
echo MostrarBanner(); // mostra banner 3
?>


fui!!! :rolleyes:
º nick: minalba
º icq: 322527969
º msn: suporte_bras@hotmail.com
-------------------------------------------
Participe do movimento brasil só PAZ!




0 user(s) are reading this topic

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

IPB Skin By Virteq