Criando um sistema de banners rotativos em PHP

Neste artigo mostro como criar um sistema onde são cadastrados banners numa tabela do MySQL e exibidos de forma aleatória em seu web site, com controle de visualização e quantidade de cliques.

[ Hits: 60.060 ]

Por: Fábio Berbert de Paula em 28/11/2002 | Blog: https://youtube.com/c/cotidianohackeado


Exibindo o banner e contabilizando os pageviews



Agora que já alimentamos nosso banco de dados com os banners, vamos adicionar código PHP para buscar os dados e exibi-los no browser do usuário.

Neste exemplo vamos criar uma página index.php com apenas o banner como conteúdo. Quando você for usar este código, pode adicionar o resto do conteúdo da página misturado com o código a seguir naturalmente.

<? /*
Estou partindo do princípio que você possui uma variável $con que é um
link identificador com sua conexão com o banco de dados, retornada pela
função mysql_connect(). */

// capturar banner

$query = "SELECT codigo, foto, alt, hits FROM banner
   WHERE ativo='1'
   ORDER BY hits LIMIT 1";
list ($banner_codigo, $banner_foto, $banner_alt, $banner_hits) = mysql_fetch_array(mysql_query($query,$con));
$banner_hits++;

// atualizar hits do banner
$update = "UPDATE banner SET hits=$banner_hits WHERE codigo=$banner_codigo";
mysql_query($update,$con);

echo "<a href='verBanner.php?codigo=$banner_codigo' alt='$banner_alt'><img src='./imagens/banners/$banner_foto' border=0></a>";

?>

Notaram o detalhe do código acima ? O link para o banner aponta para um segundo script, o verBanner.php, que será o responsável pela contabilização do número de cliques no banner e em seguida pelo redirecionamento para a página em questão. Lembre-se que a variável hits corresponde ao número de pageviews do banner e não ao número de vezes que ele foi clicado.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criando a tabela banner no MySQL
   3. Cadastrando um banner no sistema
   4. Exibindo o banner e contabilizando os pageviews
   5. Contabilizando o número de cliques e redirecionando para a URL
Outros artigos deste autor

Criando um contador de downloads com PHP e MySQL

Como fazer publicações pelo Instagram Web

Rodando ASP em servidores web Linux

Integrando o Exim4 com o SendGrid

A trajetória do Viva o Linux - retrospectiva 2003/2004

Leitura recomendada

Debugando aplicações PHP com Xdebug e Eclipse PDT

Turck MMcache completo e sem mistérios

Acessando o Twitter de 5 formas: protocolo HTTP, cURL, classe HttpRequest (PHP), função http_post_fields() do PHP ou PHP+libcurl

Capturando conteúdo de sites em PHP

Symfony Framework - Introdução

  
Comentários
[1] Comentário enviado por terciof em 30/01/2003 - 14:03h

No código:

/*
Estou partindo do princípio que você possui uma variável $con que é um
link identificador com sua conexão com o banco de dados, retornada pela
função mysql_connect(). */

// recebe codigo do banner

$query = "SELECT clicks, url FROM banner WHERE codigo=$codigo";
list ($clicks, $url) = mysql_fetch_array(mysql_query($query,$con));

$clicks++;
$update = "UPDATE banner SET clicks=$clicks WHERE codigo=$codigo";
mysql_query($update,$con);

header("Location: $url"); // redirecionar p/ url

Pode ser alterado para:

/*
Estou partindo do princípio que você possui uma variável $con que é um
link identificador com sua conexão com o banco de dados, retornada pela
função mysql_connect(). */

// recebe codigo do banner

$query = "SELECT url FROM banner WHERE codigo=$codigo";
mysql_query($query,$con);
$url = MySQL_Result($query,0,"url"); //<-- Pega a URL do banner

$update = "UPDATE banner SET clicks=clicks+1 WHERE codigo=$codigo"; //<-- No próprio SQL ele já atualiza +1 nos cliques.
mysql_query($update,$con);

header("Location: $url"); // redirecionar p/ url

Do modo acima você irá otimizar os recursos do sistema! O ganho de performance é mínimo, porém, vale a dica clicks=clicks+1! Se o seu site tiver milhões de hits será uma boa....

[]'s Tercio

[2] Comentário enviado por rafaeltjb2004 em 13/11/2004 - 20:06h

artigo otimo me serviu mto :P

[3] Comentário enviado por alisonfelipe em 26/03/2008 - 23:21h

amigão teu sistema é otimo, mais eu preciso de umas alteracoezinhas
tu consegue me ajudar?

queria que fosse banners mais aleatorios
e que aceitasse banners em flash tambem....

[4] Comentário enviado por comfaa em 28/10/2008 - 12:59h

muito legal !!!


Contribuir com comentário