Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera,
Estou com uma dúvida de como fazer uma função para um sistema que estou montando.
Seguinte, tenho um array com vários banners, e cada banner foi cadastrado por 3 usuários distintos, esses usuários possuem uma porcentagem de quantas vezes seu banner vai ser exibido no meu site.
Por exemplo:
nome - porcentagem
Fulano 35%
Ciclano 10%
Beltrano 55%
Queria fazer o sorteio dos banners, respeitando a porcentagem que cada usuário tem.
Obrigado pela ajuda.
Eu já tinha pensado em algo assim,
mas infelizmente isso não supri o que necessito fazer.
Os banners não possuem um limite de exibições, e sim quais as chances de um banner ser exibido a partir de qual porcentagem o dono desse banner possui para ser exibido.
Mas como você vai calcular os 35%? É 35% de quanto? Tem que quantificar a disponibilidade, para termos uma fatia (porcentagem)
Faça algo como isso:
$var = mt_rand(1,100);
if($var=<10){
echo "banner1"; //10% de chance
}
if($var>10 && $var<=45){
echo "banner2"; //35% de chance
}
if($var>45 && $var<=100){
echo "banner3"; //55 % de chance
}
35% de quanto? :)
Por período? Falta uma variável aí para o cálculo, não?
---
Tipo, não responde sua pergunta, mas acho esse esquema de porcentagem furado. Eu faria diferente, estabeleceria um numero de visualizações que cada banner poderia ter (em número inteiro, não porcentagem), e faria um esquema para trazer randomicamente.
http://rafaelcouto.com.br/sistema-de-sorteio-com-php exemplo para se trabalhar com sorteios entre strings, ou puxa direto na consulta do banco de dados utilizando ORDER BY RAND().
A cada visualização do banner, gravaria +1 em um campo no banco de dados, penso em algo assim:
-tabela banner
-- titulo
-- id
-- url do link
-- url da imagem
-- visualizações permitidas (numero inteiro como falei, ex: 5000)
-- visualizações realizadas (toda vez que o banner aparece, grava +1 aqui)
-- data de cadastro (você pode usar isso para criar sistema de banner entre datas... tipo exibir randomicamente um banner do dia 17/10/2013 ao dia 31/10/2013)
-- data de expiração (idem acima)