shylov
@shylov
Начинающий

Как вывести полученные данные с разными 'id' в одинаковые формы?

Ребята подскажите как в разные формы добавленные через 'echo' по 'id' добавить рейтинг с этим же 'id' для каждого товара в отдельности . Через переменную $average1 передаются данные 'stars_id' = '1' 'val' = '3.5' для всех товаров одинаково .
$result = "SELECT COUNT(stars_id), round(AVG(val),1) as average FROM stars GROUP BY stars_id"; 
$data = mysqli_query($connectBD, $result);
if (mysqli_num_rows($data)){
$row = mysqli_fetch_assoc($data);
$average1 = $row['average'];
echo $average1;

5eb93a0f42e8c098828033.png
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Если я правильно понял смысл поля stars_id, то выкинуть COUNT и собрать результат в массив:
$result = "SELECT stars_id, round(AVG(val),1) as average FROM stars GROUP BY stars_id"; 
$data = mysqli_query($connectBD, $result);
while ($row = mysql_fetch_assoc($data)) {
    $stars[$row['stars_id']] = $row['average'];
}

и дальше можно выводить рейтинг по id, echo $stars[$id];

Но вообще по-хорошему надо получать рейтинг сразу с товарами, одним запросом

select g.*, round(AVG(val),1) as stars FROM goods g, stars s WHERE stars_id=g.id GROUP BY g.id
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы