Как сплюсовать данные в массиве php ?

В mysql базе есть таблица s_orders в ней есть нужные мне данные это имя клиента(name) и сумма заказа (total_price).
Как сплюсовать одинаковых клиентов (name) и сумму заказа (total_price ) что б вывести не все заказы, а только имя клиента и общую сумму всех его заказов ?

Вывожу клиентов таким запросом
$addrs=array();
$result=mysql_query("SELECT name,address,phone,delivery_id,total_price FROM s_orders WHERE status = '2' AND paid = '1'  ORDER BY total_price");
$n=mysql_num_rows($result);
for($i=0;$i<$n;$i++) { 
   array_push($addrs, mysql_result($result,$i,"name")); 
   array_push($addrs, mysql_result($result,$i,"total_price")); 
}
mysql_close($db);
echo implode("", $addrs);

Спасибо
  • Вопрос задан
  • 2326 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
select name, sum(total_price) from s_orders where /**/ group by name
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@apasen
GROUP BY user.id в мускуле
Ответ написан
@postislav Автор вопроса
Изменил вот так, но выводит только одного клиента и сумму только от одного заказа а не за все (
$result=mysql_query("SELECT name,address,phone,delivery_id,total_price, sum(total_price) FROM s_orders WHERE status = '2' AND paid = '1' AND name != 'Тест' ORDER BY name");
Ответ написан
Комментировать
@iSensetivity
бухгалтер, програміст-самоук
SELECT name,address,phone,delivery_id,total_price, sum(total_price) FROM s_orders WHERE status = '2' AND paid = '1' AND name != 'Тест' group BY name
Ответ написан
Ваш ответ на вопрос

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

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