Mittels PHP durchschnitt aus MySQL DB berechnen und ausgeben?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mittels PHP durchschnitt aus MySQL DB berechnen und ausgeben?

    [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:
    Code:
     $sql = "SELECT * FROM wp_bp_album WHERE privacy = 0 ORDER BY bewertungspunkte DESC, LENGTH(bewertete) DESC LIMIT ".$abeintrag.",".$maxproseite.";";
    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ß
    Zuletzt geändert von xserio; 17.06.2011, 02:57.

  • #2
    Du weißt schon, dass es für die Durchschnittsberechnung eine eigene MySQL-Funktion gibt?

    Kommentar


    • #3
      h3ll meint SQL AVG() Function

      mfg streuner
      Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
      der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

      "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

      Kommentar


      • #4
        ah interessant!
        aber dann hätte ich immer noch das problem, das in der einen Spalte eine Zahl steht und in der Anderen Spalte ein String -user(3)-userx(3) könnte man alle zahlen in klammern auch per SQL rausfiltern und damit rechnen?

        Kommentar


        • #5
          Daten ordentlich speichern und nicht mehrere Werte in einer Spalte vermischen.

          Kommentar

          Lädt...
          X