Comunidad de diseño web y desarrollo en internet online

Como hacer q cada visita muestre nuevo banner?

Citar            
MensajeEscrito el 21 Nov 2005 03:32 pm
Holas.

Tengo una pequeña inquietud. Yo quiero que en una misma página al cargarla se muestre un banner con animación Flash 8, la siguiente vez que la misma persona u otra persona desde la misma o cualquier otra computadora visite la página vea un segundo banner en lugar del primero, y la próxima visita a la página desde cualquier computadora sea un tercer banner el que se muestre.

Soy un novato en eso de las bases de datos y recientemente estoy aprendiendo el uso del php, y no sé si eso me ayude.

Si ayuda en algo... tengo la base de datos mysql.

plz,plz help me.

Por //@|¬)(?®

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Nov 2005 08:05 pm
Acabo de ver una pag que utiliza tal funcionalidad. Pero no entiendo cómo lo hacen....

Fíjense en el banner cuadrado de la derecha cada vez que se refresca la página cambia a uno diferente.

Y por cierto hay algo también muy interesante que cuando cargan x primera vez en la ventana la página no sale el banner cuadradito mas sino un banner grande que se expande y colapsa.

El link es http://cbs.sportsline.com/

Por //@|¬)(?®

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2005 09:28 pm
Me respondo yo mismo y a muchos que tal vez les interesaba.

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

Código :

<?
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

Código :

<?
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

Código :

<?
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 de mysql_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.

Espero que les haya sido tan útil como a mí este pequeño script y que lo disfruten mucho ;-) Cuenten muchos clicks e impresiones!

Por //@|¬)(?®

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2005 10:47 pm
En la idea se maneja lo mismo pero aquí tienen otro ejemplillo.

Rotador de banners con PHP

A continuación informamos de cómo realizar un sistema de banners por exposiciones, ya sea en formato de imagen (gif, jpeg/jpg, png) o en formato flash (swf).

Lo primero de todo es crear una tabla en nuestra base de datos. Pueden hacerlo de dos maneras:

a) Utilizando una aplicación web como phpMyAdmin (lo cual facilitará mucho el proceso)

b) Conectando con PHP a nuestra base de datos y realizando una consulta (tampoco es algo difícl pero si no se tiene experiencia puede resultar más lioso)

La tabla de MySQL deberá tener los siguientes campos con las siguientes propiedades:

Campo Propiedades

id: Identificará al banner. Este campo debe ser único, entero y de 6 caracteres de logitud.

exp: : En este campo se guardarán las exposiciones que le quedan al banner. Este campo debe ser único, entero y de 6 caracteres de logitud.

click: : Aquí se guardarán los clicks que se hagan en el banner. Este campo debe ser único, entero y de 6 caracteres de logitud.

src: : Es la ruta de la imagen o fichero flash. Este campo deve ser "VARCHAR" de 255 caracteres de longitud.

href: : En este campo se guarda la URL a la que se llega tras pinchar el banner. Este campo deve ser "VARCHAR" de 255 caracteres de longitud.

alt: : Aquí se almacena el texto alternativo de la imagen. Este campo deve ser "VARCHAR" de 255 caracteres de longitud.

target: : Sirve para determinar el "target" del link del banner. Este campo deve ser "VARCHAR" de 25 caracteres de longitud.

Una vez que hayamos creado la tabla es hora de empezar con nuestro rotador de banners.

A continuación le mostramos el código que deberá guardar en un fichero como "banner.php", por ejemplo. Implemente este código donde quiera tener el rotador de banners de su sitio web.

Código :

<?php

/////////////////////////////// Edite las variables que vienen a continuación con los datos que le correspondan /////////////////////////////////////

// Hosta de nuestra base de datos MySQL
$dbhost = "127.0.0.1";

// Usuario para validación de MySQL
$dbuser = "me";

// Password para validación de MySQL
$dbpass = "mypass";

// Nombre de la base de datos que vamos a utilizar
$dbname = "mydb";

// Nombre de la tabla que he mos creado. En este caso se supone que la hemos llamado 'banners'.
$dbtable = "banners";

// Directorio donde vaya a guardar este fichero. Recuerde que el último caracter de esta variable debe de ser una barra '/'.
$ruta = "http://www.misitio.com/banners/";
/////////////////////////////// No haga modificaciones a partir de aquí /////////////////////////////////////

// Se realiza la conexión a la base de datos.
$bannerconex = mysql_connect($dbhost, $dbuser, $dbpass);

// Se elige la base de datos con la que queremos trabajar.
mysql_select_db($dbname);

// Se declara un array en blanco para almacenar todos los banners de la base de datos.
$banners = array();

// Se realiza una consulta para extraer todas las filas de la tabla.
$consulta = mysql_query("SELECT * FROM " . $dbtable);

// Mediante este bucle asignamos los valores (en forma de array) de cada fila a los elementos del array declarado anteriormente.
while($fila = mysql_fetch_array($consulta))
{

$banners[] = $fila;

}

// Variable 'interruptor' que determina si aún quedan exposiciones en algún banner
$nexp = 0;
for($i = 0; $i < count($banners); $i++)
{

// Si acaso quedaran exposiciones en algún banner, se incrementa la variable '$nexp' en uno y se termina el bucle
if($banners[$i]['exp'] > 0)
{

$nexp++;
break;

}

}


// Bucle que genera un banner aleatoriamente, en el caso de quedar exposiciones en alguno.
while(!$banner && !$banner['exp'] && $nexp)
{

$banner = $banners[(rand(0,count($banners)-1))];

}

// Se decrementa el número de exposiciones del banner que se ha elegido.
mysql_query("UPDATE " . $dbtable . " SET exp = '" . ($banner['exp']-1) . "' WHERE id = '" . $banner['id'] . "'");


// Si el campo 'src' de la fila (banner) que hemos elegido aleatoriamente termina en 'swf' se genera el código del banner en flash y, de lo contrario, se genera el código del banner como imagen.
if(substr(basename($banner['src']), -3, 3) == "swf")
{

$banner_html = ($nexp) ? "<embed src=\"" . $banner['src'] . "\" width=\"468\" height=\"60\"></embed>" : "";

} else {

$banner_html = ($nexp) ? "<a href=\"" . $ruta . "count.php?id=" . $banner['id'] . "&url=" . urlencode($banner['href']) . "\" target=\"" . $banner['target'] . "\" onmouseover=\"estado('" . $banner['alt'] . "'); return true;\" onmouseout=\"estado();\"><img src=\"" . $banner['src'] . "\" border=\"0\" align=\"middle\" alt=\"" . $banner['alt'] . "\"></a>" : "";

}

// Se cierra la conexión con MySQL
mysql_close($bannerconex);

// Finalmente se imprime el código de banner generado.
echo $banner_html;

?> 


El siguiente código sirve para añadir un click al banner cuando pinche en él un cliente. Guárdelo como 'count.php' junto al fichero 'banner.php' anterior.


Código :

<?php

/////////////////////////////// Edite las variables que vienen a continuación con los datos que le correspondan /////////////////////////////////////

// Hosta de nuestra base de datos MySQL
$dbhost = "127.0.0.1";

// Usuario para validación de MySQL
$dbuser = "me";

// Password para validación de MySQL
$dbpass = "mypass";

// Nombre de la base de datos que vamos a utilizar
$dbname = "mydb";

// Nombre de la tabla que he mos creado. En este caso se supone que la hemos llamado 'banners'.
$dbtable = "banners";


/////////////////////////////// No haga modificaciones a partir de aquí /////////////////////////////////////

// Se realiza la conexión a la base de datos.
$bannerconex = mysql_connect($dbhost, $dbuser, $dbpass);

// Se elige la base de datos con la que queremos trabajar.
mysql_select_db($dbname);

// Se verifica que existan las variables que utilizaremos.
if($id && $url)
{

// Se selecciona la fila correspondiente al banner en el que se ha hecho click
$consulta = mysql_query("SELECT * FROM " . $dbtable . " WHERE id = '" . $id . "'");

// Se forma un array con los campos de la fila que extragimos en la línea anterior
$fila = mysql_fetch_array($consulta);

// Se incrementa u click.
$fila['click']++;

// Se almacenen los clicks una vez incrementados
mysql_query("UPDATE " . $dbtable . " SET click= '" . $fila['click'] . "' WHERE id = '" . $id . "'");

// Se cierra la conexión
mysql_close($bannerconex);

// Se redirige a la URL especificada.
header("Location: " . urldecode($url));

}

?>




Y así de fácil. Ya tenemos nuestro propio sistema de rotación de banners por exposiciones, válido tanto para flash como para imágenes.

Por //@|¬)(?®

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2005 11:03 pm
oye pues muchas gracias no lo he probado pero de todas formas espero probarlo luego, gracias por tu iniciativa cOOL espero que otras personas que tengan la duda lo puedan utilizar eficientemente. ^^

Por Coyr

Claber

1048 de clabLevel

2 tutoriales

 

Manizales city

firefox
Citar            
MensajeEscrito el 23 Nov 2005 11:08 pm
en java para cargar una imagen yo implemento en el html este codigo

Código :

<Script Language="JavaScript">

<!--

var img = new Array();

var lnk = new Array();



img[0] = 'images/foto_blabla_04.jpg';

lnk[0] = 'libros/index.htm';



img[1] = 'images/foto_foto_blabla_05.jpg';

lnk[1] = 'direccion/index.htm';



img[2] = 'images/foto_blabla_06.jpg';

lnk[2] = 'direccion/index.htm';




var banner=Math.round(Math.random()*2);



document.write( '<a href="'+lnk[banner]+'" target="_self"><img src="'+img[banner]+'" border=0 width=261 height=152></a>' );

// -->

                  
</Script>



^^

Por Coyr

Claber

1048 de clabLevel

2 tutoriales

 

Manizales city

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.