Подсчёт одинаковых полей - MySQL

Узнай цену своей работы

Формулировка задачи:

есть таблица prefix_wall

----------id                 1    2   3   4    5    6    7    9
----------wall_user_id       10   11  10  9    9  16    16   10
----------user_id            12   22  33  32   33  44    22   434

[B]wall_user_id  [/B]- id стена пользователя 
[B]user_id [/B]- id пользователя кто оставлял сообщение

Как сделать такой вывод.....чтоб он выводил так

брал wall_user_id и считал сколько одинаковых записей в нем и выводил кол-во

wall_user_id  | кол-во записей которые повторяются
      10      |    3
      11      |    1  
      9       |    2  
      16      |    2

Решение задачи: «Подсчёт одинаковых полей»

textual
Листинг программы
$result = mysql_query("SELECT wall_user_id, COUNT(wall_user_id) FROM prefix_wall GROUP BY wall_user_id");
 
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("Пользователи %s - Очки: %s", $row[0], $row[1]."<br>" );  
}

Объяснение кода листинга программы

  1. Подключение к базе данных (предполагается, что это уже выполнено)
  2. Выполнение SQL-запроса SELECT wall_user_id, COUNT(wall_user_id) FROM prefix_wall GROUP BY wall_user_id
  3. Получение результата запроса в переменную $result
  4. Использование функции mysql_fetch_array для получения каждой строки результата запроса в виде массива
  5. Использование функции printf для вывода строки формата Пользователи %s - Очки: %s, где %s - это место для значений из массива $row
  6. Добавление символа <br> после каждой строки, чтобы разбить их на отдельные пункты
  7. Повторение шагов 4-6 для каждой строки в результате запроса

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5