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.
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.
[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....