/* создание подготавливаемого запроса */
$stmt = $mysql->prepare("select sum(c.`Price`) as price_sum
from `dogovor` d
join `catalog` c on c.`Id_Product` = d.`Id_Product`
where d.`id_client` = ?");
/* связывание параметров с метками */
$stmt->bind_param("i", $id_client);
/* выполнение запроса */
$result = $stmt->execute();
/* выборка результатов */
$row = $result->fetch_accos();
if($row)
{
echo 'Общая стоимость всех заказов клиента: '.$row['price_sum'];
}
else
{
echo 'Запрос не дал результата!';
}
Ошибки в вашем решении:
1) Небезопасная подстановка параметров в запросах. Неумение использовать в этой ситуации подготовленные запросы.
2) Использование id_client как строкового параметра, если он состоит из цифр, то целесообразно использовать целочисленный тип в колонке таблицы.
3) Неиспользование агрегированных функций среды sql. Зачем на php плодить лишние циклы, когда сумму можно посчитать "из коробки" средствами самой СУБД? Она под это заточена.
4) Связывание таблиц по наименованию сущности, а не по его идентификатору. Рационально связывать по id_product вместо name_product.