Foros del Web » Programando para Internet » PHP »

impresiones en banners rotativos

Estas en el tema de impresiones en banners rotativos en el foro de PHP en Foros del Web. Hola, estoy probando unos banners y no me suma las impresiones como corresponde. los banners estan en distintos <div> y son de distintos tipos. El ...
  #1 (permalink)  
Antiguo 26/06/2008, 01:00
 
Fecha de Ingreso: agosto-2004
Mensajes: 113
Antigüedad: 19 años, 8 meses
Puntos: 0
impresiones en banners rotativos

Hola, estoy probando unos banners y no me suma las impresiones como corresponde.
los banners estan en distintos <div> y son de distintos tipos.
El primer banner es
Código PHP:
<? $rsbanners mysql_query("SELECT imagen, web, alt FROM anunciantes WHERE tipo ='g' ORDER by RAND()");
                          list(
$imagen$web$alt) = mysql_fetch_array($rsbanners);
                          
$rslistabanners = @mysql_fetch_array($rsbanners);
                          
mysql_query("UPDATE anunciantes SET impresiones = impresiones + 1 WHERE a_id = '$a_id'");
                          
?><?php if($web!="") { ?><a href="http://<?php echo $web;?>"><?php ?><img src="banners/<?php echo $imagen;?>" alt="<?php echo $alt;?>" width="326" height="260" border="0" title="<?php echo $alt;?>"/></a>
cada vez que se carga se suma 1. Hasta ahi funciona barbaro.
Despues, en otro <div> llamo a los banners del mismo tipo y de otro tipo y los pongo mas chicos, asi:
Código PHP:
<? $rsbannerc mysql_query("SELECT * FROM anunciantes WHERE tipo ='c' OR tipo ='g' ORDER BY RAND() LIMIT 2");
                          while(
$rslistabanner_c = @mysql_fetch_array($rsbannerc)){
echo 
"<div style=\"padding-bottom:0.2em; padding-top:0.2em\"></div>";
mysql_query("UPDATE anunciantes SET impresiones = impresiones + 1 WHERE a_id = ".$rslistabanner_c["a_id"]); ?>
<?php 
if($rslistabanner_c["web"]!="") { ?><a href="http://<?php echo $rslistabanner_c["web"];?>"><?php ?><img src="banners/<?php echo $rslistabanner_c["imagen"];?> " alt="<?php echo $rslistabanner_c["alt"];?>" title="<?php echo $rslistabanner_c["alt"];?>" width="140" border="0"/></a><? ?>
Aca empieza el problema, si banner tipo G se carga en los dos <div> solamente se suma 1 y no 2 como corresponderia.
Intente que el banner grande que aparece en el primer <div> no aparezca en el segundo <div> haciendo:
Código PHP:
$sacar .= .$rslistabanner_c["a_id"]." != '$a_id'"
y en los banners chicos del segundo <div> pongo asi:
Código PHP:
<? $rsbannerc mysql_query("SELECT * FROM anunciantes WHERE tipo ='c' OR tipo ='g' AND ".$sacar." ORDER BY RAND() LIMIT 2");
A veces suma todos los banners pero la idea de que no se repitan no funciona.
Alguna idea?
Saludos y gracias
Germán
  #2 (permalink)  
Antiguo 26/06/2008, 01:51
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: impresiones en banners rotativos

En el primer banner, en el update usas $a_id, ¿de donde sale ese valor? Es que de la consulta de $rsbanners no. ¿No sera que el primer banner no esta actualizando bien la bd, y el segundo es el que lo esta haciendo bien?
  #3 (permalink)  
Antiguo 26/06/2008, 10:23
 
Fecha de Ingreso: agosto-2004
Mensajes: 113
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: impresiones en banners rotativos

SOLUCIONADO
en el primer banner tenia que agregar a_id en la consulta para poder hacer el UPDATE.
Además agregue la variable $sacar que toma el id del banner tipo G para que no se vea en el otro <div> con los banners más chicos.
Código PHP:
<? $rsbanners mysql_query("SELECT a_id, imagen, web, alt FROM anunciantes WHERE tipo ='g' ORDER by RAND() LIMIT 1");
                          list(
$a_id$imagen$web$alt) = mysql_fetch_array($rsbanners);
                          
$rslistabanners = @mysql_fetch_array($rsbanners);
                          
$sacar "$a_id"//toma $a_id de esta consulta y la excluye de la otra
                          
mysql_query("UPDATE anunciantes SET impresiones = impresiones + 1 WHERE a_id = '$a_id'");
                          
?><?php if($web!="") { ?><a href="http://<?php echo $web;?>"><?php ?><img src="banners/<?php echo $imagen;?>" alt="<?php echo $alt;?>" width="326" height="260" border="0" title="<?php echo $alt;?>"/></a>
En el segundo <div> hago la consulta:
Código PHP:
<? 
$rsbannerc 
mysql_query("SELECT * FROM anunciantes WHERE tipo ='c' OR tipo ='g' AND a_id != ".$sacar." ORDER BY RAND() LIMIT 2");//".$sacar." excluye el $a_id anterior para no repetirlo en esta consulta
                          
while($rslistabanner_c = @mysql_fetch_array($rsbannerc)){
echo 
"<div style=\"padding-bottom:0.2em; padding-top:0.2em\"></div>";
mysql_query("UPDATE anunciantes SET impresiones = impresiones + 1 WHERE a_id = ".$rslistabanner_c["a_id"]); ?>
<?php 
if($rslistabanner_c["web"]!="") { ?><a href="http://<?php echo $rslistabanner_c["web"];?>"><?php ?><img src="banners/<?php echo $rslistabanner_c["imagen"];?> " alt="<?php echo $rslistabanner_c["alt"];?>" title="<?php echo $rslistabanner_c["alt"];?>" width="140" border="0"/></a><? ?>
Lo pense anoche después de apagar la computadora y hoy lo termine con lo de DarkJ.
Gracias y saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:23.