[Resolvido] Atribuir peso em consultas
Tenho um sistema de propaganda que gerencia banners de vários formatos e em diversas partes de um site.
Recentemente adotei a ideia de permitir aos anunciantes que incluam pesos aos seus banners, dessa forma eles podem fazer com que suas propagandas tenham maiores probabilidades de aparecer nas páginas.
Como eu fiz?
select id, peso from banners
me traz só o id e o peso. Agora eu uso as funçoes de manipulação de arrays para atribuir pesos aos valores desse array e uma função de randomização que me devolve um deles. Nesse caso, um banner de peso 10, tem 10 vezes mais chances de aparecer do que um banner de peso 1, pois eu de cara repito todos os valores a quantidade de vezes do peso. Ex.
A consulta anterior me retorna
--id--peso
..1......3
..2......2
Após o tratamento, ela fica em um array assim.
id
1
1
1
2
2
agora com uma função de randomização, eu escolho uma delas.
O que eu queria é fazer isso diretamente pela consulta sql, ou diminuir ao máximo a intrusão do php nissso.
Alguém tem alguma ideia?
Discussão (3)
Carregando comentários...