Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde!
Tenho uma exibição de banners que faz consulta no banco com ORDER BY RAND(), mas estou tendo um problema pois um determinado banner insiste em aparecer, ou outro determinado banner insiste em não aparecer cada vez que atualizo o site.
Alguém tem alguma ideia de como faria para exibir aleatório de forma que um banner só pudesse aparecer depois que todos os outros tivessem aparecido?
Desde já obr.
>
Coluna 'prints', ORDER BY prints
Quando você mandar exibir o banner, você dá um +1 nessa coluna.
Seria um contador e mostrar sempre o que tiver menos visualizações?
>
Seria um contador e mostrar sempre o que tiver menos visualizações?
exato
Bom gente ainda não ta do jeito que queria, pois ainda repete pois devido outras pessoas acessarem ao mesmo tempo.
Estava pensando em armazenar os id da consulta em session e consultar com session for diferente do que ja foi mostrado, tem como fazer?
>
Bom gente ainda não ta do jeito que queria, pois ainda repete pois devido outras pessoas acessarem ao mesmo tempo.
Estava pensando em armazenar os id da consulta em session e consultar com session for diferente do que ja foi mostrado, tem como fazer?
Mas se você quiser que cada pessoa veja todos os banners, você não tem como garantir que eles terão o mesmo número de impressões.
Vamos tirar aqui o fator aleatório. Vamos supor que os banners sejam exibidos em ordem.
Se eu visito 3 páginas, vou ver A, B e C. Cada um tem 1 impressão.
Você visita todas as 5 páginas, A, B e C têm 2 impressões, D e E têm 1.
Um visitante aleatório encontra a página no Google, abre e descobre que não é o que estava procurando. A tem 3 impressões, B e C - 2, D e E 1.
Compromete o balanceamento. O que você pode fazer, para garantir aos seus clientes que os banners deles estão sendo exibidos é uma demonstração desconectado, tipo um localhost, ou até mesmo usar seu banco de dados, com essa coluna de impressões, mostrando a eles quantas vezes já viram a propaganda deles.
Pois é Evandro, tratar com clientes não é nada fácil, nesse caso eles querem ver em seu computador, que para cada atualização apresente um banner diferente, ele não vão entender que se um mesmo banner repetiu é pq outra pessoa acessou e contou uma impressão para aquele, banner. Por isso, estou tentando encontrar uma maneira de armazenar em session, para as demais consultas sejam diferentes desta guardada nesta session.
>
Pois é Evandro, tratar com clientes não é nada fácil, nesse caso eles querem ver em seu computador, que para cada atualização apresente um banner diferente, ele não vão entender que se um mesmo banner repetiu é pq outra pessoa acessou e contou uma impressão para aquele, banner. Por isso, estou tentando encontrar uma maneira de armazenar em session, para as demais consultas sejam diferentes desta guardada nesta session.
Linha de corte de navegador?? Já pensou em usar LocallStorage, ao invés de session??
>
Linha de corte de navegador?? Já pensou em usar LocallStorage, ao invés de session??
Vou dar uma olhada (estudada) Evandro..Vlw
então galera depois de estudar um pouco sobre cookie observei que nem todos os navegadores são habilitados a guardar estes então com ajuda de um amigo chegamos a esta linha código:
<?php
session_start();
function ControleBannerTopo($Secao){
$banner_topo_visto = $_SESSION["banner_topo_visto"];
$total_banner_sessao = count($banner_topo_visto);
$sql_t_banner = mysql_query("SELECT * FROM banner WHERE ban_ativo='1'");
if($total_banner_sessao==mysql_num_rows($sql_t_banner)){
unset($banner_topo_visto);
unset($_SESSION["banner_topo_visto"]);
}
if(is_array($banner_topo_visto)){
$add_sql = "";
foreach($banner_topo_visto as $bns){
if($add_sql<>""){ $add_sql .= " AND ";}
$add_sql .= "ban_id<>'$bns'";
}
$sql_banner = mysql_query("SELECT * FROM banner WHERE ban_ativo='1' AND $add_sql ORDER BY RAND()");
}else{
$sql_banner = mysql_query("SELECT * FROM banner WHERE ban_ativo='1' ORDER BY RAND()");
}
$dados_banner = mysql_fetch_array($sql_banner);
$novo_banner = $dados_banner["ban_id"];
$_SESSION["banner_topo_visto"][$total_banner_sessao] = $novo_banner;
return array("swf"=>$dados_banner["ban_nome"],"jpg"=>$dados_banner["imagem"],"url"=>$dados_banner["link"]);
}
?>
>
Boa tarde!
Tenho uma exibição de banners que faz consulta no banco com ORDER BY RAND(), mas estou tendo um problema pois um determinado banner insiste em aparecer, ou outro determinado banner insiste em não aparecer cada vez que atualizo o site.
Alguém tem alguma ideia de como faria para exibir aleatório de forma que um banner só pudesse aparecer depois que todos os outros tivessem aparecido?
Desde já obr.
Coluna 'prints', ORDER BY prints
Quando você mandar exibir o banner, você dá um +1 nessa coluna.