Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 4 Dołączył: 10.08.2009 Ostrzeżenie: (0%)
|
Witam,
przejdę od razu do meritum. Otóż planuję napisać skrypt (jak w tytule wątku) i zastanawiam się nad pewną kwestią. Załóżmy, że algorytm obliczałby ilość zdobytych plusów za komentarze, posty napisane przez użytkownika oraz jego aktywność (podobne działanie jak na portalu wykop.pl) i według tego ustalałby jego pozycję w rankingu (nie mam zamiaru robić tego dynamicznie, czyli po każdej aktywności odpalać odpowiedni skrypt - wręcz przeciwnie, posłużę się CRON'em, bo myślę, że to najlepsza rozwiązanie, chociaż jestem otwarty na wszelkie sugestie). Na samym początku, po rejestracji na witrynie użytkownik miałby status - poza rankingiem (o ile na stronie byłoby zarejestrowanych więcej niż 300 użytkowników, dajmy na to, że limit to właśnie te 300 miejsc), a dopiero z czasem (w miarę jego aktywności) mógłby zdobyć jakąś sensowną pozycję. Będę wdzięczny za jakiekolwiek propozycje, począwszy od wstępnego projektu struktury tabel, aż po sugestie dot. rozwiązania tego dość irytującego problemu. Z góry dziękuje za wszelaką pomoc. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%)
|
dokładnie Ci nie napiszę bo nie wiem jakie masz tabele i w jaki sposób chcesz wyliczać te punkty, więc napiszę Ci tylko kod zastępczy do tej pętli
po co Ci ten ranking w tabeli users, wszystko będzie prostsze jak dasz to do oddzielnej, np: tabela user_rank rank_id int11 user_id int11 points int11
oczywiście to nie jest gotowy kod, tylko taki , żeby Ci pokazać o co chodzi p.s. nie wiem czy zdajesz sobie sprawę ale ustawienie ORDER po obu kolumnach oznacza, że najpierw będzie sortowanie względem comment_points a dopiero tam gdzie wartości comment_points są takie same następuje sortowanie po post_points, więc uzyskasz zafałszowany wynik bo ktoś kto ma np. 0 punktów za komentarze a 5 milionów za posty to i tak wyląduje na końcu listy lepszym rozwiązaniem będzie zsumowanie tego czyli coś takiego:
|
|
|
|
solid23 [PHP] Ranking użytkowników 21.02.2011, 18:30:50
tehaha ale masz jakiś konkretny problem? skoro już dokład... 21.02.2011, 18:36:50
PiotrekM normalna tabela z użytkownikami
zapytaniem zlicza... 21.02.2011, 18:45:17
solid23 @tehaha: oczywiście, będę brał pod uwagę jedynie a... 21.02.2011, 19:48:45
tehaha 1. słaba wymówka co myślisz, że my nie pracujemy?
... 21.02.2011, 20:02:16
solid23 1) Wcale nie twierdzę, że są tu sami bezrobotni
2... 21.02.2011, 21:00:49
tehaha co do punktu 3 to chodziło mi "po co robić 30... 21.02.2011, 21:16:50
solid23 Mówisz, że można to wszystko zrobić za pomocą 4 za... 21.02.2011, 21:35:20 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 12:54 |