Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rotator banerów
Forum PHP.pl > Forum > PHP
maro123
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
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
Na pewno to jakiś sposób tyle, że wolałbym aby te banery wyświetlały się na przemian.
maniekl2
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
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
Jeżeli chcesz mieć kompletną losowość to skorzystaj z czasu
  1. if(time()%3 == 0){
  2. //pokaż banner 1 w z prawdopodobieństwem 1/3
  3. }else{
  4. // pokaż banner 2 w reszcie przypadków
  5. }
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.