Eistee
Erfahrenes Mitglied
Hi, ich hab nen (kleines?) Gallery-Script geschrieben.
Funktioniert soweit auch wunderbar
Eine zentrale Funktion des Scriptes ist, dass man alle Bilder auch bewerten kann (mit Punkten von 1 bis 5).
In der DB, in der alle Bilder und die zugehörigen Infos, gespeichert sind gibt es für diesen Zweck zwei Spalten: "rating" und "clicks"
In der Spalte "rating" werden einfach alle Punkte, die für dieses Bild berreits vergeben wurden addiert.
In der Spalte "clicks" wird die Zahl aller bisherigen Votes für das Bild gespeichert.
So kann ich die durchschnittliche Punktzahl für das jeweilige Bild errechnen.
Soweit so gut
Auf der Startseite meiner Page möchte ich jetzt aber das Bild mit der besten Wertung anzeigen lassen - klappt eigentlich auch.
Das hab ich über diesen Code realisiert:
Nun endlich zu meinem Problem:
Angenommen es gibt zwei Bilder in der DB. Das erste Bild wurde zweimal mit 5 Punkten bewertet, das zweite Bild wurde nur einmal mit 5 Punkten bewertet.
Beide Bilder haben aber nun durchscnittlich 5 Punkte, was dazu führt, dass es reiner Zufall ist, welches der beiden Bilder nun als bestes angezeigt wird.
Wie könnt ich meine SQL-Abfrage so ändern, dass immer das Bild angezeigt wird, auf das auch die meisten Votes abgegeben wurden (in dem Beispiel das erste)?
Ich denke, es ist klar worauf ich hinaus möchte.
Hoffe, ihr könnt mir bei meinem Problem helfen.
Funktioniert soweit auch wunderbar
Eine zentrale Funktion des Scriptes ist, dass man alle Bilder auch bewerten kann (mit Punkten von 1 bis 5).
In der DB, in der alle Bilder und die zugehörigen Infos, gespeichert sind gibt es für diesen Zweck zwei Spalten: "rating" und "clicks"
In der Spalte "rating" werden einfach alle Punkte, die für dieses Bild berreits vergeben wurden addiert.
In der Spalte "clicks" wird die Zahl aller bisherigen Votes für das Bild gespeichert.
So kann ich die durchschnittliche Punktzahl für das jeweilige Bild errechnen.
Soweit so gut
Auf der Startseite meiner Page möchte ich jetzt aber das Bild mit der besten Wertung anzeigen lassen - klappt eigentlich auch.
Das hab ich über diesen Code realisiert:
Code:
SELECT *, (rating/clicks) as 'av' FROM gallery ORDER BY 'av' DESC LIMIT 1
Nun endlich zu meinem Problem:
Angenommen es gibt zwei Bilder in der DB. Das erste Bild wurde zweimal mit 5 Punkten bewertet, das zweite Bild wurde nur einmal mit 5 Punkten bewertet.
Beide Bilder haben aber nun durchscnittlich 5 Punkte, was dazu führt, dass es reiner Zufall ist, welches der beiden Bilder nun als bestes angezeigt wird.
Wie könnt ich meine SQL-Abfrage so ändern, dass immer das Bild angezeigt wird, auf das auch die meisten Votes abgegeben wurden (in dem Beispiel das erste)?
Ich denke, es ist klar worauf ich hinaus möchte.
Hoffe, ihr könnt mir bei meinem Problem helfen.