Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Proporcjonalny rotator bannerów w 2-3 zapytaniach
Forum PHP.pl > Forum > PHP
AceDude
Mam sobie taki problemik, który okazał się - niespodziewanie - trudny. Nareszcie coś ciekawego smile.gif
Sprawa wygląda tak: system ma zliczać ilość kliknięć oraz wyświetlać 5 bannerów dobranych tak, żeby proporcjonalnie do innych [data dodania:ilość wyświetleń] były wyświetlone tyle samo razy - tzn. im wcześniej banner dodano, tym więcej ma wyświetleń [http://www.wiaderko.com/cs/partnerzy] - chyba w miarę sensownie wytłumaczyłem? smile.gif Jak nie - ma działać tak, jakby wyświetlał je po kolei, czyli mając 8 bannerów - wyświetla 1-5, 6-2, 3-7 itd. Teraz pewnie całkiem zamotałem. Jak nie rozumiesz co tu jest napisane - to powiedz tongue.gif
Problemy są 2:
1) zliczanie odsłon - przecież nie będę robił 1 zapytania na każdy banner... można to jakoś w jednym zapytaniu zamknąć? A może jakiś lepszy sposób od sql?
2) jak wyświetlić je proporcjonalnie? data[time();] : wyświetlenia - pewnie wykonanie dzielenia na sporych liczbach będzie trochę trwało...

Jakieś pomysły?
Grzesiek
Mój pomysł jest taki:

Załóżmy, że w bazie są (między innymi) takie pola:
id | data_dodania

Wyciągnąłbym wszystkie rekordy i zsumował liczbe dni jaką każdy z rekordów jest w bazie. ($suma_dni).

Następnie $prawdopodobienstwo_wyswietlenia = (($suma_dni-$data_dodania)/$suma_dni)*100

Tym sposobem z czasem $p_wyswietlenia bedzie rozkladac sie mniej wiecej po rowno. Jezeli nie bedziesz dodawal nowych rekordow.

Niewątpliwie wadą tego rozwiązania, jest trudny sposób jego realizacji. Prawdopodobnie za każdym razem będziesz musiał wyciągać wszystkie rekordy, jeśli masz ich dużo to nie wiem czy to jest rozsądny sposób, jednak z drugiej strony, zawsze można zrobić jakies cache'owanie zapytań albo serializacje danych i tylko z poziomu php losowac odpowiednie banery.
Kocurro
A nie lepiej użyć podzapytania i kilka sztuczek bazodanowych ?

Oczywiście wszystko zależy jaka bazę ma się do dyspozycji.
AceDude
No, jakbym znał te sztuczki, to bym nie zaczynał tematu, więc bądź tak miły i powiedz co masz na myśli smile.gif
MySQL używam.
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.