maro123
3.10.2009, 11:18:57
Witam, chciałbym napisać sobie jakieś prosty rotator banerów ale taki, w którym mógłbym określić sobie, że np 2/3 to jakiś tam baner a reszta to inny albo zeby wszystkie wyswietlaly sie po równo. I tu pojawia sie problem, nie wiem w jaki sposob to rozwiazac? nie chodzi o sam rotator bo z tym sobie poradze ale o to jak zrobic zeby te podzialy wyswietlen byly.
Pozdrawiam
sonicius
3.10.2009, 15:10:19
Np. to co mi wpadło w 10 sek. do głowy nie wiem czy najlepsze rozwiązanie:
CODE
$a = rand(1,100)
if($a <= 66) {
// 2/3 dla wybranego bannera
} else {
$b = rand(1, $liczba_pozostalych_bannerow)
// Wyswietl banner.$b
}
maro123
3.10.2009, 16:32:53
Na pewno to jakiś sposób tyle, że wolałbym aby te banery wyświetlały się na przemian.
maniekl2
3.10.2009, 18:21:03
No to może zapisuj za pomocą sesji. Jak nie ma zmiennej sesjyjnej to ustawia na 1, jak jest to zmienia na następną liczbę. Wtedy masz wyświetlane po kolei.
vokiel
4.10.2009, 11:20:33
Jeśli chcesz zrobić podział:
2/3 - banner1
1/3 - array(banner2,banner3,bannerN)
To rozwiązaniem może być zapisywanie ilości wyświetlanych paragonów z grupy 1 i grupy 2 i przed losowaniem kolejnego sprawdzenie proporcji poprzednich losów.
1. Po każdym wyświetleniu bannera zapisanie np.: w bazie z której grupy pochodził
2. W bazie masz gr1=3, gr2=1
3. Przed wylosowaniem bannera sprawdzasz proporcje ostatnich wpisów: czy gr1>=gr2*2
4. Jeśli gr1>=gr2*2 - losujesz banner z grupy drugiej
5. Jeśli gr1<gr2*2 - wyświetlasz banner1
6. Zapisujesz z której grupy było wyświetlenie +1 dla danej gr
posiadacz
7.10.2009, 21:26:54
Jeżeli chcesz mieć kompletną losowość to skorzystaj z czasu
//pokaż banner 1 w z prawdopodobieństwem 1/3
}else{
// pokaż banner 2 w reszcie przypadków
}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.