Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Top 10
JOHNY
post
Post #1





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


Zapytańko odnośnie generowania wyników
Mam taką tablice w mysql
rattings
  1. CREATE TABLE `rattings` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `r_ip` varchar(20) NOT NULL DEFAULT '',
  4. `r_rok` varchar(10) NOT NULL DEFAULT '',
  5. `r_autor` varchar(40) NOT NULL DEFAULT '',
  6. `r_game` varchar(5) NOT NULL DEFAULT '',
  7. `r_kategoria` int(11) NOT NULL DEFAULT '0',
  8. `r_carID` varchar(10) NOT NULL DEFAULT '',
  9. `r_score` varchar(15) NOT NULL DEFAULT '',
  10. PRIMARY KEY (`id`),
  11. UNIQUE KEY `id` (`id`)
  12. );


Wyniki w tabeli
Kod
id|ip|rok|autor|game|kateg.|carid|score
1|IP-1|2005|lol|cmr2|1|2|10
2|IP-2|2005|lol|cmr2|1|2|7
3|IP-1|2005|lol|cmr2|2|3|9
4|IP-2|2005|lol|cmr2|2|3|7
5|IP-1|2005|lol2|rbr|1|2|10
6|IP-2|2005|lol2|rbr|1|2|8
7|IP-1|2005|lol2|rbr|1|4|7


Zasada działania prosta każdy oddaje głos tylko 1 raz na konkretny samochód z gry

Teraz nie wiem jak się zabrać do wyświetlenia wyników z całości i posortowania wq AVG(r_score) uwzględniając tylko wiadome ROK oraz AUTORA danego samochodu

Wynik którybym chciał osiągnąć to
Pozycja|Nick|Score
1. LOL2 - 8.33
2. LOL - 8.25

Proszę o jakieś sugestie jak się do tego zabrać - głównie mnie interesuje co napierw trzeba wyliczyć

Z góry dzięki za pomoc

Ten post edytował JOHNY 11.01.2006, 22:32:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
JOHNY
post
Post #2





Grupa: Zarejestrowani
Postów: 297
Pomógł: 0
Dołączył: 17.01.2003
Skąd: Tarnów

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


Troche mi się koncepcja zminiła - tak by to wyglądało w moim przypadku
TABELA

ID|ROK|AUTOR|GAME|KATEGORIA|CAR_ID|SCORES

średnia ważona (SW) = (g / (g+m)) *s + (m / (g+m)) * S

gdzie:
s - średnia oceny dla danego CAR_ID z uwzględnieniem ROK|AUTOR|GAME|KATEGORIA
g - liczba oddanych głosów na CAR_ID z j.w
m - minimalna liczba głosów ogółem jako stała czyli na 10 głosów żeby się znaleść na liście - ( w skrypcie dla sprawdzenia wymagań najlepiej wyciągnąć jako count(AUTOR) .... WHERE rok=ROK)
S - średnia wszystkich głosów na wszystko - to akurat proste
SW - średnia ważona dla poszczególnych CAR_ID wg wzoru
SR-WK - średnia dla wyników SW dla danego autora

Tylko teraz pytanie czy np za pomocą operacji na 1 tablicy można to wszystko zrobić za pomocą jednego zapytania używając LEFT JOIN (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował JOHNY 17.01.2006, 16:57:35
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 05:07