Bewertung als schulnote darstellen

Wie kann man alle abgegebenen( :ps: ) Bewertungen (aus ner Datenbank) als eine Schulnote darstellen.
Zbs.2 User geben die bewertung 1 und 5 ab (also note 3)
jetzt kommt ein 3 der gib die Note 6 (also Note ???)
Ich weiß das ich dazu die zahl der Bewertungen ingsesamt und die aktuelle
endnote speichern muss,
Dann di zahl der Bewertungen durch 1 teilen muss…
und das ist der Punkt an dem ich nicht weiterkomme.
Kann mir jmd dazu eine Mahtematische formel oder ein PHP script geben?

alle bewertungen einzeln speichern und dann durch die anzahl tabellenzeilen teilen? =)
ist einfacher als der math algorythmus den du gerade suchst:D

Du brauchst nur abzuspeichern: die Anzahl der Bewertungen und die Addition sämtlicher abgegebenen Noten.
In deinem Beispiel:
Bewertungen: 3
Addition: 1+5+6 = 12

Um jetzt die Durchschnittsnote zu erhalten machste: 12 / 3 = 4

In SQL kann man das abspeichern mit einem simplen UPDATE ungefähr so regeln:
UPDATE tabelle SET bewertungen=bewertungen+1, noten=noten+$neuenote

mfg Balmung

so is natürlich noch besser :smiley:

Danke :wink:
Oh,das hatte ich in der 5 Klasse in Erdkunde ‚durchschnits Temperatur‘ :ps:
Ist ein zeichen dafür das mann das meiste aus der Schule vergist :smiley:

ach und bei UPDATE (falls du das verwendest) natürlich das WHERE nicht vergessen, sonst werden alle Datensätze überschrieben :<

[quote=“asshare”]Dann di zahl der Bewertungen durch 1 teilen muss…
und das ist der Punkt an dem ich nicht weiterkomme.[/quote]
Wozu willst du durch 1 teilen - in wie weit soll das Ergebnis vom vorherigen Wert abweichen?

Willst du vielleicht runden, um einen glatten Wert zu bekommen? Das erreicht man nicht durch sinnfreie Division durch 1, sondern mit entsprechenden mathematischen Funktionen - ROUND() für “echtes” kaufmännisches Runden, oder FLOOR/CEIL zum immer ab- bzw. aufrunden auf die nächsthöhere Ganzzahl.

Und die Gesamtzahl der Noten musst du auch nicht extra ermitteln - wenn du die Noten mit GROUP BY gruppierst (nach welchem Kriterium man dies sinnvoll macht, hängt vom Datenmodell ab - wenn unterschiedliche Datensätze “benotet” werden können, dann böte es sich an, nach deren mitgespeicherter ID zu gruppieren), dann kannst du die Aggregatfunktion AVG() darauf anwenden, die liefert dir bereits den Durchschnittswert.

chrisb das Problem wurde bereits gelöst :stress:

nun, es kommt ja auch darauf an WIE bewertet werden soll.
Wenn jede Bewertung einen eigenen Datensatz erhalten soll, dann ist chris’ Methode die bessere.
Meine Methode ist noch etwas simpler denn die Bewertungen stehen direkt in den Datensätzen die selber bewertet werden…
Wenn man z.B. eine Bewertung für Foren-Beiträge einbauen will, würde man einfach die Tabelle der Beiträge um zwei Spalten erweitern. Das hat dann aber den Nachteil, dass man nur schwer Zusatzinfos abspeichern kann z.B. WER bewertet hat. Und Statistiken lassen sich damit auch nur schwer realisieren. Wenn es also ausführlicher sein soll ist chris’ Methode besser :slight_smile:

Da jeder user nur einmal voten darf und er ja nich aus spaß 6 verteilen darf werde ich so ne mischung aus chrisb’s und deiner (balmung’s) metode machen :slight_smile:

Redundanzen vermeiden.
Wenn du chrisb’s Methode benutzt, brauchst du meine nicht. Wäre nur überflüssiger Speichergebrauch.

Damit man beurteilen kann, ob die Bewertung was taugt, sollte
man auch die Anzahl der Bewertungen und die
Standardabweichung angeben. Bei einer großen Streuung hat
offenbar der Durchschnitt wenig Aussagekraft.

Um die Standardabweichung zu berechnen, muß man auch die
Quadrate aufaddieren, aber das ist ja elementare Statistik, die
man in der Schule schon gelernt haben sollte ;o)

hoffmann ich verstehe irgendwie nicht was du meinst :qst:
Es werden 2 daten gespeichert (easy version).
1.Bewertungen+2.Anzahl
Dan a/b
Mit round()beugt man beugt man nachkoma stellen vor bei der ausgabe.
EDIT:hab es jetzt verstanden!

Mathematikbuch aufgeschlagen, S.111, heute beschäftigen wir uns mit dem Thema Statistik. Varianz, Median, Standartabweichung.

Mittelwert ist schön und gut, aber um aussagekräftigere Zahlen zu bekommen brauchst du andere Werte. Kommt aber auch darauf an was du machen willst, und wie.

mgier hab ihn falsch verstanden,o.k?
Welches mathe buch meinst du? :smiley:

kein plan vierte Klasse halt. Sry mehr als die drei Begriffe habe ich mir auch nicht gemerkt^^
Wie gesagt, je nach verwendungszweck tuts vll auch der mittelwert. musst du entscheiden.

Bei nur sechs möglichen Werten könnte man auch die
komplette Verteilung graphisch darstellen (kann man mit CSS
hinbekommen oder auch mit SVG). Der Vorteil daran liegt darin,
daß man leicht erkennt, ob sich die Bewerter einig sind oder
nicht. Kann ja auch sein, daß sich die Bewerter in kritiklose Fans
und gnadenlose Feinde aufteilen, dann hätte man nur die
Noten 1 und 6, die Verteilung selbst und stark abstrahiert auch
die Standardabweichung zeigt solch ein Verhalten.
Bei einer signifikant hilfreichen Bewertung täte man hingegen
erwarten, daß die einzelnen Werten mehr oder weniger eng um
den Mittelwert streuen (also dann eine kleine Standardabweichung
aufweisen).

Es gibt ja auch die Hypothese der ‘guten Schätzung der
unwissenden Masse’ - ist eine interessante Entdeckung, man kann
etwa irgendwelche Größen von vielen Leuten schätzen lassen -
der Mittelwert liegt oft in der Nähe des korrekten Wertes.
Interessant ist dabei natürlich, wieviele Leute an der Schätzung
teilgenommen haben, je mehr, desto besser ist meist die
Schätzung.