ich den Durchschnitt für ein Rating-System berechnet werden soll, aber ich habe normale Tabelle in InnoDB und eine Spalte in json mit dem Namen: „Bewertungen“ mit dieser Struktur:berechnen den Durchschnitt für ein Rating-System
{"comments":
[
{"name": "Jonh", "text": "nice phone", "star": 4},
{"name": "igon", "text": "not good", "star": 2},
{"name": "marco", "text": "i not like this", "star": 3},
{"name": "david", "text": "good product", "stelle": 5}
]
}
Jetzt Ich muss den durchschnittlichen Stern berechnen. ist es in SQL oder in PHP? In SQL Ich weiß nicht, wie, in PHP ich das Problem mit der Abfrage für Extrakt nur die alle Sterne, zum Beispiel:
$reviews_nn = $rowprod["reviews"];
$reviews = json_decode($reviews_nn,true);
$max = 0;
$n = 0;
foreach ($reviews[comments][star] as $rate => $count) {
echo 'Seen ', $count, ' ratings of ', $rate, "\n";
$max += $rate * $count;
$n += $count;
}
echo 'Average rating: ', $max/$n, "\n";
Aber das Ergebnis NAN ist ... ganze Zahl ist, nicht wahr? Es ist eine ganze Zahl in star ...
Stern = 4
nicht Stern = "4"
Ich hoffe, dass Sie mir helfen können .... Tanks !!!
Was ist das? $ Reviews_nn = $ rowprod ["reviews"]; '? und auch '$ reviews ['comments'] ['star'] als $ rate => $ count', aber immer noch wird es nicht funktionieren ich denke –
' $ bewertungen [kommentare] [star] 'ist kein Array .. sicherlich .. – DevDonkey
Wie so oft ist die Lösung, Ihre Daten zu normalisieren. – symcbean