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