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: 63.375 ]

Por: Fábio Berbert de Paula em 28/11/2002 | Blog: https://www.instagram.com/alexabolada/


Introdução



Quando resolvi lançar uma versão mais robusta do Viva o Linux, umas das primeiras coisas em que pensei foi num sistema de banners rotativos. Uma vez lançado o site, acreditava que em pouco tempo já teriam se firmado algumas parcerias para troca ou venda de banners e para não me limitar a apenas um banner fixo nas páginas, um esquema de rotatividade seria necessário.

Sendo assim, segui a seguinte lógica de raciocínio: se tenho dois banners e um acabou de ser exibido, a próxima pageview do site deve mostrar o segundo banner. Eventualmente o parceiro/cliente pode querer estatísticas, então tenho que saber quantas vezes o banner foi exibido e quantas vezes foi clicado.

Ao analisar o estudo de caso decidi que o melhor esquema para a solução seria a utilização de programas PHP armazenando dados sobre o banner em tabelas do MySQL. Nas próximas páginas vamos descobrir como o sistema funciona na prática.

    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

Edital de política de contribuição de artigos

Viva o Linux finalmente de volta!

Como Turbinar sua Produtividade com VIM - Guia Definitivo do Desenvolvedor

cpulimit - Limitando o uso da CPU por processo

Como preparar o Vim/Neovim para corrigir ortografia em português

Leitura recomendada

Abordagem exemplificada de orientação à objeto com PHP 5

Paginação de resultados em PHP/MySQL

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

PEAR - Utilizando classes prontas e documentadas no PHP

Debugando aplicações PHP com Xdebug e Eclipse PDT

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts