RSS
PHP

Um sistema simples de banner rotativo em PHP/MySQL

imprimir
Publicado em: 17/03/2008  |  PHP  |  Visualizações: 4.794  |  3 Comentário(s)
Bem pessoal como meu tempo está meio apertado, não esta sobrando tempo para fazer artigos, mas tenho vários quase prontos ^^. Então enquanto não termino nenhum artigo irei colocar um artigo que pode ser bastante útil a todos! Do Rodrigo Romano Moreira (www.phpbrasil.com) .


Aprenda a rotacionar seu banner, usando JavaScript, PHP e MySQL. Esse artigo é o ponto de partida para um sistema de banner rotativo nas dimensões 468x60 (no formato GIF ou PNG).
Vote aqui!
Média de Votos Atual: 7.12
Total de Votos: 17
Nota:  
Ultimamente tenho notado em listas de discussão ou em fóruns sobre PHP, pessoas em busca de sistemas de banner rotativo. Esse artigo disponibiliza o código de um simples sistema de banner rotativo em MySQL. Ele é pequeno e fácil de entender.

Para começar crie uma tabela no MySQL com a seguinte estrutura :

CREATE TABLE banner (
   codigo int(11) NOT NULL auto_increment,
   url char(255),
   grafico char(255),
   exibicoes int(11),
   clicks int(11),
   maxexib int(11),
   data datetime,
   PRIMARY KEY (codigo)
);


Depois crie um arquivo com as suas configurações no MySQl , chamado config.php :

<?php
$host = "localhost"; // host do MySQL
$user = "root"; // id do usuario do MySQL
$pass = ""; // senha do usuario no MySQL
$database = "banner"; // database do usuario no MySQl
?>


Para inserir seus banner (a url da página alvo, a url da figura e o numero máximo de exibições), crie um arquivo insere.php com o seguinte conteúdo:

<?php
include("config.php");

if (isset($submit)) {
   $data = date("y:m:d h:i:s");
   $conn = mysql_connect($host, $user, $pass);
   mysql_select_db($database);
   $insere = "INSERT INTO banner (url, grafico, exibicoes, clicks, maxexib, data)
   VALUES ('$link', '$imagem', 0, 0, '$max', '$data')";
   mysql_query($insere, $conn);
   mysql_close($conn);
?>

<input type="submit" value="Fechar" name="submit" onClick='javascript: self.close();'>
<?php
} else {
?>
<form method="POST" action="insere.php">
  <table align="center" border="1"  bordercolor="#000000" cellspacing="0" cellpadding="0">
    <tr>
      <td>
        <table border="0">
          <tr>
            <td colspan="2" bgcolor="#219CDE">
              <p align="center">Adicionar novo banner</td>
          </tr>
          <tr>
            <td>Link(Url):</td>
            <td width="50%"><input type="text" name="link" size="40"></td>
          </tr>
          <tr>
            <td>Imagem(Url):</td>
            <td width="50%"><input type="text" name="imagem" size="40"></td>
          </tr>
          <tr>
            <td>Número de exibições:</td>
            <td width="50%"><input type="text" name="max" size="40"></td>
          </tr>
          <tr>
            <td colspan="2">
              <p align="center"><input type="submit"
              value="Enviar" name="submit"></td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
</form>
<?php
}
?>


Para exibir os seus banners, você primeiro deve criar um arquivo chamado exibe.php com o seguinte conteúdo:

<?php
include("config.php");

$conn = mysql_connect($host, $user, $pass);
mysql_select_db($database);

// a clasula ORDER by RAND() é responsável pela rotação do banner.
// note que maxexib é igual a zero, ele não é exibido
$query = "SELECT * FROM banner WHERE maxexib > 0 ORDER by RAND() LIMIT 1";
$consulta = mysql_query($query, $conn);
$linha = mysql_fetch_row($consulta);

$linha[5] -= 1;
$linha[3] += 1;

// subtrai menos 1 ao campo maxexib
$update = "UPDATE banner SET maxexib=$linha[5] WHERE codigo='$linha[0]'";
mysql_query($update, $conn);

// adiciona mais 1 ao campo exibicoes
$update2 = "UPDATE banner SET exibicoes=$linha[3] WHERE codigo='$linha[0]'";
mysql_query($update2, $conn);

mysql_close($conn);

// imprime o banner ,que vai ser usado no javascript
echo "document.write("<a href=/banner/conta_click.php?id=$linha[0] target=_blank><img border=0 src=$linha[2] width=468 height=60></a>  ");";
?>


Após ter criado o arquivo exibe.php , crie uma javascript na página onde seus banners vão ser exibidos ,com a seguinte estrutura:

<SCRIPT LANGUAGE="JavaScript" SRC="http://www.suapagina.com/exibe.php"></SCRIPT>

Um pequeno exemplo: Vamos dizer que o exibe.php tem esse caminho em sua página, www.romano.com.br/exibe.php (infelizmente, não existe essa página). Para inserir o javascript no html é só fazer isso:

<html>
<head>
<title>Teste do banner</title>
</head>
<body>
<p>Esse é seu banner </p>
<SCRIPT LANGUAGE="JavaScript" SRC="http://www.romano.com.br/exibe.php"></SCRIPT>
</body>
</html>


Para registrar os clicks em seus banners e redirecionar para a página alvo, crie um arquivo chamado conta_click.php com seguinte conteúdo:

<?php
include("config.php");

$conn = mysql_connect($host, $user, $pass);
mysql_select_db($database);

$query = "SELECT * FROM banner WHERE codigo=$id LIMIT 1";
$consulta = mysql_query($query, $conn);
$linha = mysql_fetch_row($consulta);

$linha[4] += 1;

// adiciona mais 1 ao campo clicks
$update = "UPDATE banner SET clicks=$linha[4] WHERE codigo='$linha[0]'";
mysql_query($update, $conn);

mysql_close($conn);

// redireciona para página alvo do banner
header("Location: $linha[1]");
?>


Para encerrar vamos criar um script para administrar seus banners com nome de admin.php. Lá você obterá as seguintes informações: Código do banner, estatísticas de exibições, se o banner está ativo (maxexib maior que 0), data de criação e a opção de remover(ou criar) banners. O código do admin.php é o seguinte:

<input type="submit" value="Inserir novo Banner" name="submit" onClick='javascript: window.open("insere.php","","width=450,heigth=100,toolbar=no");'>
<?php
include("config.php");

$conn = mysql_connect($host, $user, $pass);
mysql_select_db($database);

if (isset($submit)) {
   $delete = "DELETE FROM banner WHERE codigo = $id";
   mysql_query($delete, $conn);
}

$query = "SELECT * FROM banner ORDER by codigo ASC";
$consulta = mysql_query($query, $conn);

while ($linha = mysql_fetch_row($consulta)) {
?>
<p> </p>
<table border="1" bordercolor="#000000" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">
      <p align="left">Código : <?php echo $linha[0]; ?>
      <p>Link : <a href="<?php echo $linha[1]; ?>"><?php echo $linha[1]; ?> </a></p>
      <p>Imagem :<img border="0" src="<?php echo $linha[2]; ?>" width="468" height="60"></p>
      <p>Exibições :<?php echo $linha[3]; ?></p>
      <p>Clicks :<?php echo $linha[4]; ?> </p>
      <p>Porcentagem(Clicks por exibições) :
      <?php echo round(($linha[4]/$linha[3])*100,2); ?>%</p>
      Data  de criação :<?php echo $linha[6]; ?>
      <p>Status :<?php if ($linha[5] != 0) { ?>Ativo<?php } else { ?>Inativo<?php } ?></p>
      <form method="POST" action="admin.php?id=<?php echo $linha[0]; ?>">
         <center>
         <input type="submit" value="Remover" name="submit">
         </center>
      </form>
    </td>
  </tr>
</table>
<?php
}
mysql_close($conn);
?>



Rodrigo Romano Moreira

Até a próxima!


Links Patrocinados

 interatividade
versão para impressão envie por e-mail 3 Comentário(s) comentários compartilhe
 
Preencha o formulário para comentar:
Nome:*

E-mail:* (não será exibido)

Site: (http://)

Comentário:*

Deseja receber os comentários no e-mail?

Anti-spam: (nova imagem)





Diego Darlan

Publicado em: 18/03/2008 - 07:53

Opa de mais... muito interçante vlw...

 

Newton Araujo

Publicado em: 08/05/2008 - 15:16

mUITO BOM MESMO VALEU!!!

 

Gabriel

Publicado em: 31/05/2008 - 13:10

Post Muito Bom Mesmo Parabens!! Continue assim!!

 

Autor


Igor Diniz Igor Diniz
Eu sou www.igordiniz.com.br :D O mais bonito de todos os colunistas da Oficina da Net ;)
» Site do colunista

Todas as matérias de Igor Diniz



Links Patrocinados

Mais populares

Matérias relacionadas

Tags

» php

© 2005 - 2008 - Oficina da Net - v 4.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.