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