Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Jak powinno wyglądać zapytanie
Forum PHP.pl > Forum > Przedszkole
emajl22
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ę.
sadistic_son
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
emajl22
A skąd Ci się wzięło te rate_films? winksmiley.jpg
potreb
A tobie skąd się wzięło? Przecież sam podałeś tabelę rate_films.
emajl22
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
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.