Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Jak powinno wyglądać zapytanie
emajl22
post 4.01.2011, 11:39:55
Post #1





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


Witam,

Chcę napisać zapytanie, które pobierze mi coś z jednej tabeli, sortując to wartością z drugiej tabeli.

Dla sprostowania; mam takie tabele:

FILMS:
FID, FNAME, FDESC, FDATE [...]

RATE_FILMS:
ID (auto increment), FID (int), FVALUE (int)

Jak już widać, chodzi mi o wydobycie np. 5 (LIMIT, to wiem) najczęściej ocenianych filmów. Dodam jeszcze, że przy wyświetlaniu filmów mam głosowanie, a tam mam <select> z wartościami od 1 do 10 i do bazy dodaję ID, ID_FILMU, WARTOŚĆ_SELECT, później sumuję głosy i tyle.

Z góry dzięki za każdą przydatną wskazówkę.

Ten post edytował emajl22 4.01.2011, 11:41:38


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 4.01.2011, 12:20:20
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Jeśli dobrze zrozumiałem o co chodzi to:
  1. SELECT SUM(rate_films.fvalue) , rate_films.fid , films.fid , films.fname , films.fdesc , films.fdate FROM films , rate_films WHERE rate_films.fid=films.fid ORDER BY SUM(rate_films.fvalue) LIMIT 5


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
emajl22
post 4.01.2011, 15:23:40
Post #3





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


A skąd Ci się wzięło te rate_films? winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
potreb
post 4.01.2011, 15:30:13
Post #4





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


A tobie skąd się wzięło? Przecież sam podałeś tabelę rate_films.


--------------------

Go to the top of the page
+Quote Post
emajl22
post 4.01.2011, 19:39:36
Post #5





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


Wybacz, mój błąd, bo zmieniłem nieco bazę danych i już sam się pogubiłem.

Mam teraz bazę:

QUOTS:
QID | QCAT | QNAME | QDATE

RATINGS:
ID, QID, RATE

Skorzystałem z rozwiązania podanego wyżej i błędów co prawda nie wyrzuca, ale nie zwraca poprawnego wyniku i co najdziwniejsze - pokazuje tylko jeden wynik, choć powinno się ich pokazać 5 (LIMIT 5).

Obawiam się, że trzeba to jakoś inaczej zrobić, bo żeby wyliczyć średnią głosów (ilość głosów / sumę głosów) muszę to dzielić przed wyświetleniem. Do bazy danych (po oddaniu głosu), pojawia się rekord z ID (auto increment), QID (na które oddano głos), RATE (jaka wartość, czyli od 1 do 10).

Proszę o dalsze wskazówki.

Odświeżam.. sad.gif


--------------------
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:50