[COLOR="Red"]UPDATE[/COLOR]
Habs selber hinbekommen. Hab mir ein kleines Script geschrieben, welches alle Durchschnitte berechnet und in eine neue DB-Zeile einfügt (hätt ich auch früher drauf kommen können :/)
///////
Moin,
der Titel verwirrt ein wenig, ich wusste auch nicht genau, ob meine Frage ins SQL oder PHP Forum gehört.
Folgendes: Ich habe vor einiger Zeit eine kleine Community ins Leben gerufen, wo die Leute Bilder hochladen und diese auch bewerten können.
In meiner Datenbank sieht das ganze so aus:
Spalte 1 ----------------------- Spalte 2
Bewertungspunkte-------------- Bewertetete
21----------------------------- user1(7)-user2(10)-user3(4)-
9------------------------------ user1(2)-user2(5)-user3(2)-
etc.
Nun habe ich (endlich) ein paar MySQL abfragen geschrieben, damit die User die Bilder auf verschiedenen Weisen sortieren können (neuste, älteste, meiste views).
Nur bei der Abfrage für die Bewertung haperts noch.
Die Abfrage sieht so aus:
Damit bekomme ich logischerweise die Bilder mit der größten Zahl der Bewertungspunkte als erstes angezeigt, weiterhin wird nach der Anzahl der Bewertungen sortiert (ich habe leider damals beim anlegen der DB noch nicht an eine "Sortieren nach Bewertung"-Funtkion gedacht, deswegen kann ich da nur die lenght-funktion zur hilfe nehmen und davon ausgehen, das der längere Eintrag auch mehr bewertungen hat)
Zum Problem:
Ich möchte, das die beste durchschnittliche Bewertung oben steht!
Momentan kann ein Bild eine schlechte durchschnittliche Bewertung haben, dadurch das viele User es aber Bewertet haben sind die gesamten Bewertungspunkte höher und das Bild wird somit "früher" angezeigt.
Um den durchschnitt in PHP auszurechnen zähle ich einfach die Bindestriche die in "bewertete" stehen und teile sie durch die Bewertungspunkte.
Kann ich etwas ähnliche in einer mySQL abfrage machen oder das ganze mit PHP entsprechend manipulieren?
bin für jede Hilfe dankbar!
gruß
Habs selber hinbekommen. Hab mir ein kleines Script geschrieben, welches alle Durchschnitte berechnet und in eine neue DB-Zeile einfügt (hätt ich auch früher drauf kommen können :/)
///////
Moin,
der Titel verwirrt ein wenig, ich wusste auch nicht genau, ob meine Frage ins SQL oder PHP Forum gehört.
Folgendes: Ich habe vor einiger Zeit eine kleine Community ins Leben gerufen, wo die Leute Bilder hochladen und diese auch bewerten können.
In meiner Datenbank sieht das ganze so aus:
Spalte 1 ----------------------- Spalte 2
Bewertungspunkte-------------- Bewertetete
21----------------------------- user1(7)-user2(10)-user3(4)-
9------------------------------ user1(2)-user2(5)-user3(2)-
etc.
Nun habe ich (endlich) ein paar MySQL abfragen geschrieben, damit die User die Bilder auf verschiedenen Weisen sortieren können (neuste, älteste, meiste views).
Nur bei der Abfrage für die Bewertung haperts noch.
Die Abfrage sieht so aus:
Code:
$sql = "SELECT * FROM wp_bp_album WHERE privacy = 0 ORDER BY bewertungspunkte DESC, LENGTH(bewertete) DESC LIMIT ".$abeintrag.",".$maxproseite.";";
Zum Problem:
Ich möchte, das die beste durchschnittliche Bewertung oben steht!
Momentan kann ein Bild eine schlechte durchschnittliche Bewertung haben, dadurch das viele User es aber Bewertet haben sind die gesamten Bewertungspunkte höher und das Bild wird somit "früher" angezeigt.
Um den durchschnitt in PHP auszurechnen zähle ich einfach die Bindestriche die in "bewertete" stehen und teile sie durch die Bewertungspunkte.
Kann ich etwas ähnliche in einer mySQL abfrage machen oder das ganze mit PHP entsprechend manipulieren?
bin für jede Hilfe dankbar!
gruß
Kommentar