подсчет голосов за конкретный ответ

#php #mysql

#php #mysql

Вопрос:

У меня есть таблица, в которой ведется учет голосов

Условие

  1. Ответ может иметь много голосов;

  2. Пользователь может проголосовать один раз за определенный идентификатор ответа.

    таблица: reply_vote

          ---- ------------- -------------    
        | id |   reply_id  | userID      | 
         ---- ------------- ---- --------    
        | 1  | 23          | 21          | 
        | 3  | 33          | 21          | 
        | 4  | 23          | 25          | 
        | 5  | 23          | 12          | 
      

Я хочу отобразить общее количество голосов по каждому ответу

например,g

reply_id 23 имеет 3 голоса с идентификатором пользователя (21,25,12)

reply_id 33 имеет 1 голос с идентификатором пользователя (21)

Я не хочу извлекать все данные, используя цикл while в php

до сих пор я использовал приведенный ниже запрос, но он отображает все голоса на странице, а это не то, что требуется

 SELECT
  reply.id,
  reply.reply,
  COUNT(reply_vote.id) AS likes
FROM reply
  LEFT JOIN reply_vote ON reply_vote.reply_id = reply.id
GROUP BY reply.id
  

Как я могу это сделать?

Комментарии:

1. Что не так с вашим запросом?

2. я использовал приведенный ниже код для извлечения данных из запроса, который я написал выше, он отображает все данные по каждому ответу в выводе **while ($row = mysqli_fetch_array ($ query)) { echo ‘<h3>’.$row[«ответить»].'</h3>’; // echo ‘<a href=»index.php?type=articleamp;id=’.$row[«id»].'»> Нравится</a>’; echo ‘<p>’.$row[«лайки»].’ Людям это нравится</p>’;} **

3. И что не так с вашим кодом?

4. я хочу создать подсчет голосов, который отображал бы идентификатор eachreply с его голосованием, похожим на facebook likes

5. «Я хочу отобразить общее количество голосов по каждому ответу» — ИМХО, ваш запрос делает именно это.

Ответ №1:

Попробуйте этот код:

 SELECT reply.id, reply.reply, 
    COUNT(reply_vote.id) as likes
    FROM reply 
    INNER JOIN reply_vote ON reply_vote.reply_id = reply.id 
    GROUP BY reply_vote.reply_id