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.
Parte 2: Criando a tabela banner no MySQL
Após análise, eis a lista do que achei que seria necessário armazenar
em banco de dados:
- Imagem do banner
- URL do site
- Número de pageviews (exibições)
- Número de cliques (visitas)
- Texto alternativo (propriedade alt da tag img)
- Se o banner está habilitado ou não
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+----------------+
| codigo | int(11) | | PRI | NULL | auto_increment |
| url | varchar(80) | | | | |
| foto | varchar(50) | | | | |
| hits | int(11) | YES | | 0 | |
| clicks | int(11) | YES | | 0 | |
| alt | varchar(80) | YES | | NULL | |
| ativo | enum('0','1') | YES | | 0 | |
+--------+---------------+------+-----+---------+----------------+
E a seguir o código SQL usado para criá-la no MySQL:
CREATE TABLE banner (
codigo int(11) NOT NULL auto_increment,
url varchar(80) NOT NULL default '',
foto varchar(50) NOT NULL default '',
hits int(11) default '0',
clicks int(11) default '0',
alt varchar(80) default NULL,
ativo enum('0','1') default '0',
PRIMARY KEY (codigo)
) TYPE=MyISAM
codigo int(11) NOT NULL auto_increment,
url varchar(80) NOT NULL default '',
foto varchar(50) NOT NULL default '',
hits int(11) default '0',
clicks int(11) default '0',
alt varchar(80) default NULL,
ativo enum('0','1') default '0',
PRIMARY KEY (codigo)
) TYPE=MyISAM
Execute a cláusula acima no prompt do seu MySQL e zé fini, vamos à
implementação do sistema. :)
Páginas do artigo
1. Introdução2. 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
Como fazer publicações pelo Instagram Web
Qt 6.10 e Python 3.14 puxam o ritmo do software livre nesta quarta
Corretor Ortográfico no Vim - Guia definitivo
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Leitura recomendada
Criando Virtual Host no Apache: simples assim
Como programar com OOP em PHP, uma classe simples
Google Chart: Criando gráficos dinâmicos em minutos
BolachaMALPPH Apache X Lighttpd X PHP/FastCGI X APC X HTTPREF X MySQL
Comentários
artigo otimo me serviu mto :P
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....
tu consegue me ajudar?
queria que fosse banners mais aleatorios
e que aceitasse banners em flash tambem....
muito legal !!!
/*
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