Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ranking użytkowników a punkty
Forum PHP.pl > Forum > PHP
lukaszskowronski
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!
lukaskolista
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.
lukaszskowronski
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?
lukaskolista
To musisz to zrobic zapytaniem do bazy, a dokladnie to policzyc uzytkownikow ktorzy maja wiecej pkt niz uzytkownik szukany i dodac do wyniku 1
lukaszskowronski
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
lukaskolista
Nie ten dzial smile.gif opisz dokladniej (w odpowiednim dziale) o czym serwis bedzie
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.