![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam sobie taki problemik, który okazał się - niespodziewanie - trudny. Nareszcie coś ciekawego
![]() 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? ![]() ![]() 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? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 96 Pomógł: 3 Dołączył: 15.04.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- Linux is like wigwam, no windows, no gates and an apache inside.
Mój blog łebmasterski (po angielsku) Web Development Blog. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
A nie lepiej użyć podzapytania i kilka sztuczek bazodanowych ?
Oczywiście wszystko zależy jaka bazę ma się do dyspozycji. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
No, jakbym znał te sztuczki, to bym nie zaczynał tematu, więc bądź tak miły i powiedz co masz na myśli
![]() MySQL używam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:54 |