Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Zapytanie
styryl
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 27
Dołączył: 16.04.2008
Skąd: Bakutilu

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


Witam mam oto taki problem:

mam 2 tabele

1. Oceny

id ocena glosow what id_what

2. Filmy

id title tresc kat date stat dstat act opened id_user

Chce teraz wyciągnąć najwyżej ocenione filmy przy czym uwzględniając z tabeli filmy stat = 1 i dstat = 1

Ocena jest wyliczana tak:

$ocena_ = $ocena_ / $glosow_;
$ocena_ = round ($ocena_ , 1);

Czyli dziele sume ocen z kolumny oceny przez ilość oddanych głosów z kolumny glosow

Nie mam pomysłu jak to zrobić proszę o pomoc.

Pzdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
blawat
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 17.03.2006

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


select (o.ocena/o.glosow) ocena_srednia, f.* from oceny o, filmy f where o.id_what=f.id and f.stat=1 and f.dstat=1 order by ocena_srednia desc

Cytat(djbarca @ 29.03.2010, 21:37:39 ) *
tzn zakladam ze jeden rekord w tabeli oceny jest dla jednego filmu to bylo by chyba tak:

  1. $rekord = mysql_query("SELECT f.title,o.ocena,o.glosow,(o.ocena/o.glosow) as wynik
  2. FROM filmy f LEFT JOIN oceny o ON o.id_what = f.id WHERE f.what='filmy' && f.stat='1' && f.dstat='1' ORDER BY wynik DESC LIMIT 10");


z jego struktury tabeli raczej bym wnioskowal ze tabela ocen odnosi sie ogolnie do ocen np: ocen ksiazek dlatego ma tam wstawiona kolumne "what"

w takim wypadku left join zle zadziala bo nie wszystkie oceny beda odnosily sie do filmow i wskocza do wynikow null'e

Ten post edytował blawat 29.03.2010, 21:48:08
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: 12.10.2025 - 14:20