Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ranking użytkowników a punkty
lukaszskowronski
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 29.09.2011
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam.

Jestem w trakcie pisania większego projektu, ale stoję w jednym miejscu i nie mogę sobie z jednym poradzić. Otóż mam tabelę z użytkownikami. Tabela MySQL zawiera klucz do tabeli z kategoriami użytkowników. Po wejściu w serwisie w spis userów, można wybrać kategorię i na tej podstawie są pobierane wyniki z bazy danych z użytkownikami. Każdy z nich zbiera na swoim koncie punkty, które są zapisywane w tabeli z użytkownikami w osobnej kolumnie rekordu z danymi użytkownika. Na tej podstawie pobrane rekordy są sortowane metodą Z-A.

Mój problem jest następujący. Jak obliczyć dla każdego użytkownika prowizję? Chodzi o to, że ma być ona generowana dynamicznie. Użytkownik, który jest na samym szczycie listy (1 miejsce) musi mieć najmniejszą wartość prowizji, zaś ostatni w rankingu największą. Prowizja ma być wyrażana w %, więc w grę wchodzą jedynie wartości 0,xx. Max wartość nie może przekraczać 50% wartości zamówienia.

Proszę o pomoc, jest to dla mnie naprawdę ważne, ponieważ bez tego nie jestem w stanie ukończyć projektu, a skorzystać na tym może każdy.. wink.gif Szczegóły wkrótce!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
lukaskolista
post
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Najprosciej bedzie opracowac odpowiedni algorytm smile.gif
Moja propozycja:
  1. $min_prowizja = 10; // Wartosc w %
  2. $max_prowizja = 50; // Wartosc w %
  3.  
  4. $ilosc_uzytkownikow = mysql_query("SELECT COOUNT(1) FROM users"); // Zapytanie bedzie szybkie poniewaz MySQL pamieta ilosc rekordow w tabeli i nie bedzie jej liczyl za kazdym razem
  5. $ilosc_uzytkownikow = mysql_fetch_object($ilosc_uzytkownikow);
  6.  
  7. $wspolczynnik = ($max_prowizja - $min_prowizja) / $ilosc_uzytkownikow;
  8.  
  9. $miejsce_ranking = 40; // Miejsce uzytkownika w rankingu - nalezy wyliczyc albo liczyc w petli
  10.  
  11. $prowizja = $miejsce_ranking * $wspolczynnik; // Wartosc prowizji w %
Swoja droga piszesz duzy serwis a nie potrafisz czegos takiego wymyslec?

Edit:
Oczywiscie rozklad prowizji jest rowny i zalezny od ilosci uzytkownikow, im wiecej tym prowizja mniejsza.

Ten post edytował lukaskolista 24.10.2011, 19:49:28
Go to the top of the page
+Quote Post
lukaszskowronski
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 29.09.2011
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Dzięki za pomoc, właśnie o to mi chodziło.

A co jeśli chcę wyliczyć pozycję w rankingu nie w pętli?
Go to the top of the page
+Quote Post
lukaskolista
post
Post #4





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


To musisz to zrobic zapytaniem do bazy, a dokladnie to policzyc uzytkownikow ktorzy maja wiecej pkt niz uzytkownik szukany i dodac do wyniku 1
Go to the top of the page
+Quote Post
lukaszskowronski
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 29.09.2011
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Dziękuję wszystkim osobom, które w tym momencie bardzo mi pomogły.. Temat można zamknąć! Zainteresowanych zapraszam pod adres http://www.webint.pl/ . Proszę o wpisanie się na listę newslettera. Nie bójcie się. Do tej listy zostanie wysłany tylko 1 mail, podczas oficjalnego otwarcia serwisu.

W najbliższym czasie planuję napisać przewodnik po całym serwisie, z którego będziecie mogli dowiedzieć się dużo więcej, na temat nadchodzących nowości.. Zapraszam już dziś i jeszcze raz z serca dziękuję wink.gif
Go to the top of the page
+Quote Post
lukaskolista
post
Post #6





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Nie ten dzial smile.gif opisz dokladniej (w odpowiednim dziale) o czym serwis bedzie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:22