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
maly_pirat
post
Post #2





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

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


Czyli na przykład w tabeli użytkowników (users table) mam wstawić dwie nowe kolumny (varchar 255 ?) :: news_id, articles_id - będę tam przetrzymywał ID treści, które dany użytkownik ocenił. ID będą w postaci 1:2:3:4:5:6 etc, później wystarczy, że za pomocą explode oraz in_array sprawdzam czy głosował czy nie.

A dlaczego mam tworzyć nowe kolumny w tabeli użytkowników, przecież w tabeli rate mam
  1. <?php
  2. rater_id int ( 11 ) (j/w)
  3. ?>


Odpowiada za ID użytkownika, który zagłosował, tylko nie potrafię zbudować zapytania :-/
  1. <?php
  2. // pokazywanie treści wybranego newsa
  3.  
  4. $news_id = (int) $_GET['news_id'];
  5.  
  6. // sql pobierające info o newsie
  7.  
  8. // sql pobierające głosy
  9. $sql = "SELECT ( CO POBRAĆ ) FROM rate WHERE rated_id = '$news_id' AND rater_id = '$uzytkownikID' ";
  10. następnie przez mysql_num_rows sprawdzić czy głosował, czy nie
  11. ?>


Co mam pobrać z tabeli rate ? Chce sprawdzić czy użytkownik głosował czy nie?
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: 5.10.2025 - 11:00