Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Budowa systemu oceniania, rate system
maly_pirat
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Cześć, temat bardziej leży pod pomoc w zarysie projektu, niż problem z danym obiektem.
Chciałbym zbudować system oceniania (coś prostego) na potrzeby artykułów, oraz newsów - tak aby wypozycjonować suchary od tego dobrego materiału ;-)

-> Tabela: rate:
  1. <?php
  2. rate_id int ( 11 ) (wartość default ustawiać? )
  3. rated_id int ( 11 ) (j/w ?)
  4. rater_id int ( 11 ) (j/w)
  5. rate smallint(2) (j/w)
  6. ?>


W skrócie pisząc: rate_id identyfikator dla oceny, rated_id - co oceniamy, czy Artykuł, czy News,
rater_id - kto ocenił userID, oraz rate ocena jaka padła

Coś dodać, coś ująć?

-> Tabela: (dodać nowe kolumny) dla Newsów oraz Artykułów:
  1. <?php
  2. average_rate SMALLINT(3) (wartość DEFAULT ?)
  3. ?>


Czyli teraz np. użytkownik oceni to wykonają się dwa zapytania:
a) wysyła dane dla tabeli [b]rate

(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) wysyła przeliczoną liczbę punktów (tabela: newsów/artykułów)

Oczywiście podczas wyświetlania skorzystam z mysql_num_rows czy użytkownik głosował, czy nie.
Czy taki system ma szanse na rozruch, o czymś zapomniałem? Chciałbym aby system miał max 6 rang
1 - gniot
...
6 - arcy dzieło
więc jeśli użytkownik z listy (select, html) wybierze np. ocenę 4 to mam zrobić:

4 / 6 = średnia oceny artykułu / newsa || = 0,6
z taką średnią to raczej nie wypromuje arcy dzieł (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Proszę o rozwiązanie, korzystniejsze zastosowanie etc. ;-]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
PanGuzol
post
Post #2





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

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


Źle zrozumiałeś.
Do tabeli z newsami/artykułami dodajesz pola 'suma_ocen', 'ilosc_ocen' i 'kto_ocenial'.
Do wartości w pierwszym polu dodajesz ocenę jaką dał użytkownik,
Wartość drugiego pola zwiększasz o 1 za każdym razem jak ktoś zagłosuje,
A w trzecim polu trzymasz ID userów którzy już zagłosowali oddzielone przecinkami, dwukropkami czy jakimkolwiek innym znakiem.

Ocenę artykułu otrzymujesz dzieląc 'suma-ocen' przez 'ilosc_ocen', a korzystając z funkcji explode oraz in_array sprawdzasz czy ID użytkownika znajduje się już w polu 'kto_ocenial' przy próbie oceny.

Nie potrzebujesz dodatkowej tabeli rates.
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: 7.10.2025 - 09:02