Рецепт №126. Из книги «128 рецептов php»
Перейти к оглавлению
Иногда необходимо получить какие-то данные для сгруппированных строк, например, узнать максимальный возраст для всех Ивановых, Петровых и тд. То есть необходимо сгруппировать всех пользователей по фамилии и получить для них максимальный возраст. Для этих целей можно воспользоваться SQL-запросом с оператором GROUP BY. Запрос будет выглядеть так:
SELECT `last_name`, max(`age`) as max_age FROM `tbl_users`
GROUP BY `last_name`
Результатом выполнения такого запроса будет массив строк, которые будет содержать по два значения – фамилию и максимальный возраст для группы этих фамилий.
Пример:
// предварительно, необходимо реализовать
// подключение к базе данных
// запрос
// при ошибке остановим скрипт и выведем ошибку
$query = mysql_query("
SELECT last_name, max(`age`) as max_age
FROM `tbl_users`
GROUP BY last_name
") or die(mysql_error());
// получение результата запроса
$result = array();
while($row = mysql_fetch_array($query, MYSQL_ASSOC)){
$result[] = $row;
}
// вывод результата
print_r ($result);
