Top10 Foto aus der Datenbank abfragen, Probleme

M

MafiaGmbH

Jungspund
Hallo, ich lasse bei mir auf der Seite Fotos bewerten. Und jeder User darf bis zu 9 Fotos zur bewertung hochladen.

So wen ich in der Top10 Liste die Fotos nach der bewertung listen lasse, kommen auch von einem Profil mehr Fotos vor.
Ich will aber so machen, das es von einem Profil nur das beste Foto angezeigt wird.

Also eine Beispiel Datenbank.
Code:
ID UserID   BILDNR   BEWERTUNG
1     1        1          100
2     1        2           90
3     2        1           70
4     2        2           71

Also ich will das es nach meiner Beispiel Datenbank volgende Datensätze in der Reihnefolge anzeigt.

ID = 1 (PLATZ1)
ID = 4 (PLATZ2)

Also es wird erstmal geschaut das das UserID = 1 Profil das beste Foto besitzt, und zwar hat 100 Punkte bekommen. Und dann wird das zweite profil geschautn und nach den besten Bild Punkten gesucht. Dann müssen die ausgewelte Profile noch nach den Punkten sortiert werden.
Wie sieht die MySQL Abfrage dafür den aus?
 
Was für eine Fotogallery setzt du ein? Woher sollen wir die SQL Struktur der Fotosoftware kennen?
 
Was für eine Fotogallery setzt du ein? Woher sollen wir die SQL Struktur der Fotosoftware kennen?

Nein also ich habe den Script selbst programmiert. und brauche die erforderliche MySQL Abfrage. Den Dattenbank beispiel habe ich ja oben angegeben.

ICh könnte z.B. diese Abfrage nutzen:
SELECT * FROM TABLLE WHERE 1 ORDER BY BEWERTUNG DESC

Aber, da werden alle Bilder angezeigt, und ich will das es von einem Profil nur das Beste bild angezeigt wird. wen ich "GROUP BY UserID" mit verwende, wird zwar nur ein Bild des Users angezeigt, aber nicht das mit meißten bewertungen.
 
Code:
select 
user_id uid, bild_nr 
from 
my_table 
where bewertung=(select max(bewertung) where user_id=uid)
group by user_id

Kann das nicht testen, könnte aber hinhauen....
 
Zuletzt bearbeitet:
Nun ja, so ähnlich.

Code:
SELECT * FROM bilder x
WHERE x.bewertung=(SELECT MAX(y.BEWERTUNG) FROM bilder y WHERE x.userid=y.userid)
ORDER BY bewertung DESC LIMIT 10;

Das "LIMIT 10" gilt für MySQL; für andere Engines mußt Du was passendes anderes wählen.

-Kuli
 

Ähnliche Themen

Heimserver Konfiguration für Ubuntu Server?!

Problem mit Squid-Proxy Transparent + ASA 5505

Problem mit Apache2 + MySQL Server

squid transparent proxy will nicht transparent werden !! :-(

HP PSC 2175 - CUPS druckt nicht

Zurück
Oben