Я хочу рассчитать среднее значение для рейтинговой системы, но у меня есть обычная таблица в innodb и один столбец в json с именем: "reviews" с такой структурой:
{"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}
]
}
Теперь мне нужно рассчитать среднюю звезду. это в sql или в php? В sql я не знаю, как, в php у меня проблема с запросом для извлечения только всей звезды, например:
$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";
Но результат NAN ... Разве не целое? Это целое число в звездочке ...
звездочка = 4
не звездочка = "4"
Надеюсь, вы мне поможете .... Танки !!!
$reviews_nn = $rowprod["reviews"];
? а также$reviews['comments']['star'] as $rate => $count
, но все равно это не сработает, я думаю - person Anant Kumar Singh   schedule 31.03.2016$reviews[comments][star]
не массив .. конечно .. - person DevDonkey   schedule 31.03.2016