En esta ocasión voy a demostrarles cómo armar un rotador de banners con estadísticas de clicks e
impresiones.

Para poder hacer un buen rotador de banners con sus estadísticas correspondientes, vamos a hacer una
tabla en una base de datos MySQL.




ban_id es índice y se auto incrementa con cada nuevo registro añadido, contiene la id de cada banner.
ban_url es donde almacenaremos las direcciones de los sitios.
ban_img es donde almacenaremos las direcciones de los banners.
ban_click es donde pondremos la cantidad de clicks de cada banner.
ban_impre es donde pondremos la cantidad de impresiones de cada banner.

Comencemos con lo más fácil, el rotador. Para el rotador usaremos el siguiente código:


banner.php

<?
if(@mysql_connect($serv,$user,$pass)) {
mysql_select_db($dbase);
} else {
echo "Hubo un error, disculpa las molestias";
exit();
}
$qbaney = mysql_query("SELECT * FROM tabla");
mt_srand(time());
$max = mysql_num_rows($qbaney);
$rand = mt_rand(1,$max);
$sqldo = mysql_query("SELECT * FROM tabla WHERE ban_id='$rand'");
  while($ban = mysql_fetch_assoc($sqldo)) {
  echo "<a href='click.php?id=".$ban['ban_id']."' target=_blank>”.
  “<img src='".$ban['ban_img']."' width=468 height=60 border=0></a>";
  }
mysql_query("UPDATE $table15 SET ban_impre=ban_impre+1 WHERE ban_id='$rand'");
?>


Vamos a traducir el código línea por línea:

1. Si se puede establecer una conexión al motor MySQL...
2. Se selecciona una base de datos.
3. De lo contrario...
4. Se imprime “Hubo un error, disculpa las molestias”.
5. Se sale del programa.
6. Se cierra el IF.
7. Se selecciona todo de la tabla.
8. Se crea la semilla del rotador (mejorado).
9. Se cuentan todos los banners y se los guarda en $max.
10. Se genera un número aleatorio entre 1 y el máximo ($max).
11. Se selecciona un banner de la tabla donde el campo ban_id sea igual al número aleatorio.
12. Mientras $ban sea un array asociativo...
13. Imprimir en la pantalla un link a click.php?id= id elegido en la tabla.
14. La imagen desde la dirección almacenada en la tabla, cerramos link.
15. Cerramos el while.
16. Actualizamos la tabla con una impresión más de la que ya había.

Ese fue el rotador de banners con contador de impresiones. Ahora nos falta el contador de clicks y
redireccionador al sitio donde pertenece el banner. Para eso, guardamos el siguiente archivo:
click.php

<?
if(@mysql_connect($serv,$user,$pass)) {
mysql_select_db($dbase);
} else {
echo "Hubo un error, disculpa las molestias";
exit();
}
mysql_query("UPDATE tabla SET ban_click=ban_click+1 WHERE ban_id='{$_GET['id']}'");
$showurl = mysql_query("SELECT * FROM tabla WHERE ban_id='{$_GET['id']}'");
  while($rowed = mysql_fetch_assoc($showurl)) {
  header("Location: ".$rowed['ban_url']);
  }
?>


Comenzaremos a leer desde la línea siete, ya que las seis primeras son iguales a las del archivo
anterior.
7. Se actualiza la cantidad de clicks en el banner contenido en $_GET[‘id’].
8. Se muestra la información como un array asociativo.
9. La página es redireccionada al sitio del banner.

Para ver sus estadísticas pueden crear una página que muestre los datos de cada campo, eso es muy
fácil de hacer, y les doy el ejemplo con el campo de ban_id ;-)


admin.php

<?
if(@mysql_connect($serv,$user,$pass)) {
mysql_select_db($dbase);
} else {
echo "Hubo un error, disculpa las molestias";
exit();
}
$sel = mysql_query("SELECT * FROM tabla");
echo "<table width=100%>";
  while($show=mysql_fetch_assoc($sel)) {
  echo "<tr>".
  "<td>".$show['ban_id']."</td>".
  "</tr>";
  }
echo "</table>";
?>


Lo que haría es:
7. Seleccionar todo de la tabla
8. Imprimir el tag de la tabla HTML
9. Se muestra la información como un array asociativo
10. Se abre una fila
11. Se imprime la celda con el id
12. Se cierra la fila
13. Se cierra el while
14. Se cierra la tabla HTML
NOTA 1:
         Un error común que todos hacemos es usar mysql_fetch_array() en vez
         demysql_fetch_assoc(). Esto nos da un gasto de procesos innecesarios, ya que
         con array abrimos tanto un índice numeral como el índice asociativo (nombre
         del campo). Usando assoc directamente, nos ahorra tiempo si solo necesitamos
         usar los nombres de los campos para nuestras aplicaciones.

         NOTA 2:
         Colocando un @ antes de una función evita (no en todas las funciones) que se
         muestre un mensaje de error, en caso que algo salga mal. Es por eso que cuando
         algo salga mal en la conexión al motor MySQL, sólo se mostrará el mensaje que
         he colocado.



http://www.webexperto.com/articulos/art/167/rotador-de-banners-con-estadisticas/

Más contenido relacionado

PPT
Conexion Entre Php Y Mysqul
DOC
Crear El Proyecto Y El Primer Formulario Con Su CodificacióN
DOCX
Create database reservacodigos
PDF
Práctica Completa en Flash – ActionScript
DOCX
PDF
Aplication
PPT
Connection en Java
DOCX
Informe grupal f_arinango_ cuenca
Conexion Entre Php Y Mysqul
Crear El Proyecto Y El Primer Formulario Con Su CodificacióN
Create database reservacodigos
Práctica Completa en Flash – ActionScript
Aplication
Connection en Java
Informe grupal f_arinango_ cuenca

Destacado (19)

PDF
Fall_2016_Fur_Linesheets_part2-updated
DOCX
Esquema Del Marcohistoriko Romanticismo
DOCX
Esquema Novecentismo Y Vanguardisa
PPTX
Pres Web2.0
ODP
SesióN 2 Modulo Ii
PDF
Lease Application Paperwork
PPT
Internet
PPS
Dia Padre 2010 Bea
PPTX
Receta cangrejos
PDF
Programacion Marzo Mh
ODP
Presentqcad
PPTX
Pres Web2.0
PDF
Proyecto De Ley OrgáNica Reforma CóDigo Penal 1
PPT
Romanticismo marcela
PDF
resume
PDF
Guia de Estilo: Brincos
PPTX
Taera Especifica De Evaluacion De La Informacion Cientifica
PPTX
Bloque de cierre
PPT
Valderas
Fall_2016_Fur_Linesheets_part2-updated
Esquema Del Marcohistoriko Romanticismo
Esquema Novecentismo Y Vanguardisa
Pres Web2.0
SesióN 2 Modulo Ii
Lease Application Paperwork
Internet
Dia Padre 2010 Bea
Receta cangrejos
Programacion Marzo Mh
Presentqcad
Pres Web2.0
Proyecto De Ley OrgáNica Reforma CóDigo Penal 1
Romanticismo marcela
resume
Guia de Estilo: Brincos
Taera Especifica De Evaluacion De La Informacion Cientifica
Bloque de cierre
Valderas
Publicidad

Similar a Clic de banners (20)

DOC
PHP - MYSQL
PDF
Afu3 gb manual de manipulación de datos
DOCX
Manual eloy lipis
DOCX
Manual eloy lipis
DOCX
Manual final reporte_francisco
PPT
PHP Y MYSQL
PPT
tutorial de slide.com
PDF
Conexiondinamica
PDF
Conexiondinamica
PDF
Cheko manual
DOCX
PPTX
3. consultar datos
PPTX
DOCX
Eloy pasos (2)
PDF
82 Php. Ver Y Modificar Estructuras
DOCX
DOCX
Manual final francisco
PPTX
Arenas Camacho-Practica web sesión 7.pptx
PDF
Guia N4 Proyectos Web My Sql Y Php
PHP - MYSQL
Afu3 gb manual de manipulación de datos
Manual eloy lipis
Manual eloy lipis
Manual final reporte_francisco
PHP Y MYSQL
tutorial de slide.com
Conexiondinamica
Conexiondinamica
Cheko manual
3. consultar datos
Eloy pasos (2)
82 Php. Ver Y Modificar Estructuras
Manual final francisco
Arenas Camacho-Practica web sesión 7.pptx
Guia N4 Proyectos Web My Sql Y Php
Publicidad

Clic de banners

  • 1. En esta ocasión voy a demostrarles cómo armar un rotador de banners con estadísticas de clicks e impresiones. Para poder hacer un buen rotador de banners con sus estadísticas correspondientes, vamos a hacer una tabla en una base de datos MySQL. ban_id es índice y se auto incrementa con cada nuevo registro añadido, contiene la id de cada banner. ban_url es donde almacenaremos las direcciones de los sitios. ban_img es donde almacenaremos las direcciones de los banners. ban_click es donde pondremos la cantidad de clicks de cada banner. ban_impre es donde pondremos la cantidad de impresiones de cada banner. Comencemos con lo más fácil, el rotador. Para el rotador usaremos el siguiente código: banner.php <? if(@mysql_connect($serv,$user,$pass)) { mysql_select_db($dbase); } else { echo "Hubo un error, disculpa las molestias"; exit(); } $qbaney = mysql_query("SELECT * FROM tabla"); mt_srand(time()); $max = mysql_num_rows($qbaney); $rand = mt_rand(1,$max); $sqldo = mysql_query("SELECT * FROM tabla WHERE ban_id='$rand'"); while($ban = mysql_fetch_assoc($sqldo)) { echo "<a href='click.php?id=".$ban['ban_id']."' target=_blank>”. “<img src='".$ban['ban_img']."' width=468 height=60 border=0></a>"; } mysql_query("UPDATE $table15 SET ban_impre=ban_impre+1 WHERE ban_id='$rand'"); ?> Vamos a traducir el código línea por línea: 1. Si se puede establecer una conexión al motor MySQL... 2. Se selecciona una base de datos. 3. De lo contrario... 4. Se imprime “Hubo un error, disculpa las molestias”. 5. Se sale del programa. 6. Se cierra el IF. 7. Se selecciona todo de la tabla. 8. Se crea la semilla del rotador (mejorado). 9. Se cuentan todos los banners y se los guarda en $max. 10. Se genera un número aleatorio entre 1 y el máximo ($max). 11. Se selecciona un banner de la tabla donde el campo ban_id sea igual al número aleatorio. 12. Mientras $ban sea un array asociativo... 13. Imprimir en la pantalla un link a click.php?id= id elegido en la tabla. 14. La imagen desde la dirección almacenada en la tabla, cerramos link. 15. Cerramos el while. 16. Actualizamos la tabla con una impresión más de la que ya había. Ese fue el rotador de banners con contador de impresiones. Ahora nos falta el contador de clicks y redireccionador al sitio donde pertenece el banner. Para eso, guardamos el siguiente archivo:
  • 2. click.php <? if(@mysql_connect($serv,$user,$pass)) { mysql_select_db($dbase); } else { echo "Hubo un error, disculpa las molestias"; exit(); } mysql_query("UPDATE tabla SET ban_click=ban_click+1 WHERE ban_id='{$_GET['id']}'"); $showurl = mysql_query("SELECT * FROM tabla WHERE ban_id='{$_GET['id']}'"); while($rowed = mysql_fetch_assoc($showurl)) { header("Location: ".$rowed['ban_url']); } ?> Comenzaremos a leer desde la línea siete, ya que las seis primeras son iguales a las del archivo anterior. 7. Se actualiza la cantidad de clicks en el banner contenido en $_GET[‘id’]. 8. Se muestra la información como un array asociativo. 9. La página es redireccionada al sitio del banner. Para ver sus estadísticas pueden crear una página que muestre los datos de cada campo, eso es muy fácil de hacer, y les doy el ejemplo con el campo de ban_id ;-) admin.php <? if(@mysql_connect($serv,$user,$pass)) { mysql_select_db($dbase); } else { echo "Hubo un error, disculpa las molestias"; exit(); } $sel = mysql_query("SELECT * FROM tabla"); echo "<table width=100%>"; while($show=mysql_fetch_assoc($sel)) { echo "<tr>". "<td>".$show['ban_id']."</td>". "</tr>"; } echo "</table>"; ?> Lo que haría es: 7. Seleccionar todo de la tabla 8. Imprimir el tag de la tabla HTML 9. Se muestra la información como un array asociativo 10. Se abre una fila 11. Se imprime la celda con el id 12. Se cierra la fila 13. Se cierra el while 14. Se cierra la tabla HTML
  • 3. NOTA 1: Un error común que todos hacemos es usar mysql_fetch_array() en vez demysql_fetch_assoc(). Esto nos da un gasto de procesos innecesarios, ya que con array abrimos tanto un índice numeral como el índice asociativo (nombre del campo). Usando assoc directamente, nos ahorra tiempo si solo necesitamos usar los nombres de los campos para nuestras aplicaciones. NOTA 2: Colocando un @ antes de una función evita (no en todas las funciones) que se muestre un mensaje de error, en caso que algo salga mal. Es por eso que cuando algo salga mal en la conexión al motor MySQL, sólo se mostrará el mensaje que he colocado. http://www.webexperto.com/articulos/art/167/rotador-de-banners-con-estadisticas/