Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SELECT ostatnie 10 rekordów kazdego uzytkownika
geogis
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 12.03.2005

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


Witam,

Mam system oceniania zdjęć na stronie, który buduje mi potem TOP 30.

TOP 30 mogę przeglądać wg płci osób głosujących. Czyli mozemy zobaczyc jak głosowały Panie a jak Panowie.

Na tę chwilę działa mi to bez zarzutów. Przykład. Wyciągam z bazy srednią ocen Panów. Zdjęcia muszą mieć już przynajmniej 10 głosów. Sortuje od tych które mają najwyższa średnią i ograniczam ilosc zdjęc do 30:

  1. SELECT t.photo_id, t.user_id, t.sex, FORMAT(AVG(t.rate),2) AS rate, COUNT(t.photo_id) AS num
  2. FROM (SELECT r.photo_id AS photo_id, p.user_id AS user_id, per.sex AS sex, r.rate AS rate, p.file_name AS file_name FROM photo_rates r, user_photos p, personal_details per WHERE r.photo_id=p.id AND per.user_id=r.user_id AND per.sex='m') AS t
  3. GROUP BY t.photo_id
  4. HAVING num>10
  5. ORDER BY rate DESC
  6. LIMIT 30


Teraz mam to przerobić. Chodzi o to że zmieniam warunek.... dalej interesują mnie zdjęcia które mają przynajmniej 10 ocen, ale dodatkowo chodzi o to żeby średnia była wyliczona na podstawie tylko 10 ostatnich ocen....

Czyli np. mam zdjecie które ma 15 ocen wiec sie ono kwalifikuje, ale średnia ocena wyliczana jest tylko i wyłacznie na podstawie ostatnich 10 ocen....

Mam nadzieje ze jest to zrozumiałe.

Niestety nie wiem jak to ugryźć. Oczywiście mogłbym sie bawić w PHP i oprzec to o jakies tablice i pętle... ale chciałbym to zrobić ładnie w zapytaniu mysql.

Ktoś chętny żeby pomóc?

Pozdrawiam,
geogis
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 14:28