Bewertungssystem wie berechnen?
Hallo liebe Community,
ich habe folgendes Problem:
Die Benutzer auf einer Website (angemeldet mit ihrer email) dürfen Rezepte bewerten.
Meine Datenbank sieht wie folgt aus:
Rezepte:
id, titel, Beschreibung
Rezepte_Bewertungen:
id, rezeptid, userid, Bewertung
Jeder der Benutzer darf das Rezept nur einmal bewerten.
Dazu kann er 1 bis 5 Sterne vergeben.
Nun habe ich z.B. folgende Auswertung:
Rezepte_Bewertungen,
1, 100, 10, 5
2, 100, 11, 3
3, 100, 12, 5
4, 100, 13, 2
5, 100, 14, 1
6, 100, 15, 3
7, 100, 16, 3
8, 100, 17, 3
9, 100, 18, 5
10, 100, 19, 5
11, 100, 20, 4
Nun habe ich für das Rezept mit der id 100, 11 Bewertungen:
1 Stern: 1
2 Sterne: 1
3 Sterne: 4
4 Sterne: 1
5 Sterne: 4
Mein Problem ist nun folgendes:
Ich weiß nicht wie ich die Bewertung auf der Website anzeigen / berechnen soll?
Im Endeffekt soll das Rezept nur so viele Sterne bekommen wie in Summe der Durchschnitt ergibt?
Ich habe schon einiges berechnen versucht, auch die einzelnen Sterne zusammen gezählt / die Gesamtanzahl.
Ich bekomme immer nur zahlen raus die größer als 5 sind (was auch logisch ist).
Wie kann ich dieses Problem lösen?
Vielen Dank schon mal vorweg
ich habe folgendes Problem:
Die Benutzer auf einer Website (angemeldet mit ihrer email) dürfen Rezepte bewerten.
Meine Datenbank sieht wie folgt aus:
Rezepte:
id, titel, Beschreibung
Rezepte_Bewertungen:
id, rezeptid, userid, Bewertung
Jeder der Benutzer darf das Rezept nur einmal bewerten.
Dazu kann er 1 bis 5 Sterne vergeben.
Nun habe ich z.B. folgende Auswertung:
Rezepte_Bewertungen,
1, 100, 10, 5
2, 100, 11, 3
3, 100, 12, 5
4, 100, 13, 2
5, 100, 14, 1
6, 100, 15, 3
7, 100, 16, 3
8, 100, 17, 3
9, 100, 18, 5
10, 100, 19, 5
11, 100, 20, 4
Nun habe ich für das Rezept mit der id 100, 11 Bewertungen:
1 Stern: 1
2 Sterne: 1
3 Sterne: 4
4 Sterne: 1
5 Sterne: 4
Mein Problem ist nun folgendes:
Ich weiß nicht wie ich die Bewertung auf der Website anzeigen / berechnen soll?
Im Endeffekt soll das Rezept nur so viele Sterne bekommen wie in Summe der Durchschnitt ergibt?
Ich habe schon einiges berechnen versucht, auch die einzelnen Sterne zusammen gezählt / die Gesamtanzahl.
Ich bekomme immer nur zahlen raus die größer als 5 sind (was auch logisch ist).
Wie kann ich dieses Problem lösen?
Vielen Dank schon mal vorweg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 278717
Url: https://administrator.de/contentid/278717
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
nö das du nur Zahlen größer 5 raus bekommst ist nicht logisch wenn du den Durchschnitt berechnen willst.
Anzahl der Sterne / Anzahl Bewertungen.
Und das würd ich mir eigentlich sogar eher vom SQL bei der Abfrage berechnen lassen. Sollte schneller gehen als die Daten an PHP zu übergeben und dann dort zu berechnen
Edit: Übrigens deine Tabellendarstellung ist falsch.
Spalte 1 ist wenn dann von 1 bis x durchnummeriert.
Spalte 2 sollte überall eine 1 drinnen stehen.
nö das du nur Zahlen größer 5 raus bekommst ist nicht logisch wenn du den Durchschnitt berechnen willst.
Anzahl der Sterne / Anzahl Bewertungen.
Und das würd ich mir eigentlich sogar eher vom SQL bei der Abfrage berechnen lassen. Sollte schneller gehen als die Daten an PHP zu übergeben und dann dort zu berechnen
Edit: Übrigens deine Tabellendarstellung ist falsch.
Spalte 1 ist wenn dann von 1 bis x durchnummeriert.
Spalte 2 sollte überall eine 1 drinnen stehen.
Na am einfachsten im SQL mit einem AVG() berechnen lassen.
Google doch mal "build star rating system sql php", da findest du hunderte Anleitungen.. Ein Beispiel: http://codular.com/part-2-rating-system
Google doch mal "build star rating system sql php", da findest du hunderte Anleitungen.. Ein Beispiel: http://codular.com/part-2-rating-system
Den Durchschnitt bildet man durch Zusammenzählen der Punkte und dann das Teilen durch die Gesamtanzahl Bewertungen.
Das ist Mathe 2. Klasse. (Falls nicht sogar erste)
Beispiel:
Insgesamt 11 Stimmen:
Jetzt zur SUMME:
Endergebnis:
Das Rezept hat also 3,5 Sterne.
Gruß,
@Snowman25
Das ist Mathe 2. Klasse. (Falls nicht sogar erste)
Beispiel:
Wertung | Anzahl |
---|---|
1 | 1 |
2 | 1 |
3 | 4 |
4 | 1 |
5 | 4 |
Wertung | Anzahl |
---|---|
1 | 1 + |
2 | 1 + |
3 | 4 + |
4 | 1 + |
5 | 4 |
-- | |
STIMMEN | 11 |
Jetzt zur SUMME:
Wertung * Anzahl | Ergebnis |
---|---|
1 * 1 | = 1 |
2 * 1 | = 2 |
3 * 4 | = 12 |
4 * 1 | = 4 |
5 * 4 | = 20 |
SUMME | 39 |
Endergebnis:
SUMME / STIMMEN | ERGEBNIS |
---|---|
39 / 11 | = 3,5454... |
Das Rezept hat also 3,5 Sterne.
Gruß,
@Snowman25