Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%)
|
Tworzę na własne potrzeby dość minimialistyczny system wymiany linków.
Inne takie projekty to np. likuj.pl lub linkor.pl Problem polega na tym, że nie wiem jak losować te 5 adresów do wyświetlenia. Przyjmijmy, że mamy już użytkownika z kontem, który zarejestrował kilka swoich stron w systemie i ma 1000 punktów. Porozdzielał te punkty na adresy które będzie reklamował pod dany anachor. Jak teraz "wylosować" 5 linków? Z moich dotychczasowych rozmyśleń, losowanie na pewno powinno uwzględnić:\ + ilość punktów przydzielonych danemu adresowi + ilość wyświetleń adresu Co jeszcze? Jak to powyliczać, jak pobrać z bazy? Macie pomysły? Ja nie :/ |
|
|
|
![]() |
Post
#2
|
|
|
Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz |
Sprawa jest bardziej skompikowana niz moglo by sie wydawac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) duzo mozna uwzgledniac, albo poprostu liczyc na farta (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Wszytko zalezy od tego ile bedziesz mial tych linków i jak to sobie wyobrazasz... Mozesz zrobic cos takiego (Wyswietlen-MaxWyswietlen)*(Puntky/jakis podzielnik sensowny) no i taka regulka robisz Quary do bazy i "Order by 'to'" |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%)
|
Wraz ze znajomymi opracowaliśmy dwa sposoby.
Sposób 1 Kod * Tworzymy np. 4 przedzialy punktowe: * [1-10] * [10-50] * [50-250] * [250-1000] * * Losujemy liczbe z zakresu rand(1, 1000) * Wybieramy wszystkie rekordy z zakresu wg wylosowanej liczby * Juz bez zadnej faworyzacji losujemy jeden rekord * * Sposob ten mozna rozwinac o faworyzowanie liczby wyswietlen i innych * podczas drugiego losowania Sposób 2: Kod * N - liczba rekordow w bazie * * Losujemy liczbe z zakresu rand(1, N); * Losujemy liczbe z zakresu rand(1, <poprzednio wylosowana liczba) * Pobieramy wszystkie rekordy, sortujemy malejaca wg ilosci punktow * z zakresu 1..<druga wylosowana liczba> * * Zalety: latwosc w implementacji * Wady: Przy nieliniowym rozkladzie punktow w bazie wyniki beda niezadawalajace Sposób 3: Kod * Polaczenie ze soba dwoch ww. sposobow. Najpierw sposobem 1 okreslamy przedzial * potem sposobem 2 wybieramy link Jeśli to możliwe, prosze o ocene tychze sposobow, a takze o wlasne propozycje co do tego jak taki problem rozwiazac. |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 12:15 |