dazle
@dazle
Хороший электрик, но в душе программист

Функция SUM в sql запросе не работает почему?

Ввожу простой запрос он работает:
$res = mysqli_query($bd, "SELECT * FROM corzina ");
while($row = mysqli_fetch_array($res)) { 
echo $row['cent'];
echo "₽";
}

Тут же меняю запрос чтобы найти сумму, выдает ошибку: Undefined array key "cent" in
$res = mysqli_query($bd, "SELECT SUM(cent) FROM corzina ");
while($row = mysqli_fetch_array($res)) {    
echo $row['cent'];
echo "₽";
}

Мне надо найти сумму столбца, причем вводя в бд mysql тотже запрос он находит сумму
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
@Zzzz9
попробуй запрос SELECT SUM(cent) as summa FROM corzina

и вывод echo $row['summa'];
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
Владею: Html, Css, Php, bd msql, сложные запросы SQL
Рили???

Ок, на самом деле решение очевидное, и весьма простое. Во втором запросе вы выбираете не столбец, имя которого будет ассоциироваться с ключом в соответствующем массиве (о чем вам и говорит ошибка), а результат агрегирующей функции, которое в массиве будет иметь совершенно другое имя. Что легко проверяется через var_dump($row).

Решение - добавить алиас для агрегированного поля.
Ответ написан
Комментировать
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Магия:
$sum = $bd->query("SELECT SUM(cent) FROM corzina")->fetch_row()[0];
echo "$sum ₽\n";

Без всяких алиасов и while.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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