#php #mysql
#php #mysql
Вопрос:
У меня есть столбец в таблице, который я хотел бы сложить и вернуть сумму. У меня есть цикл, но он не работает.
while ($row = mysql_fetch_assoc($result)){
$sum = $row['Value'];
}
echo $sum;
Комментарии:
1. вы должны либо заменить это SQL-запросом, который выполняет сумму, либо вы должны инициализировать
$sum = 0
перед циклом. Я бы предложил создать SQL-запрос с полем sum().2. здесь нет ничего плохого, за исключением того, что $ sum может иметь некоторое значение перед циклом, каков ваш запрос?
3. вы должны объявить переменную $sum выше в цикле WHILE равной ‘0’
Ответ №1:
Вы можете полностью обработать это в запросе MySQL:
SELECT SUM(column_name) FROM table_name;
Использование PDO ( mysql_query
устарело)
$stmt = $handler->prepare('SELECT SUM(value) AS value_sum FROM codes');
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$sum = $row['value_sum'];
Или с помощью mysqli:
$result = mysqli_query($conn, 'SELECT SUM(value) AS value_sum FROM codes');
$row = mysqli_fetch_assoc($result);
$sum = $row['value_sum'];
Комментарии:
1. вот так
$sum= mysql_query("SELECT SUM(Value) FROM Codes");
с помощью этого я получаюResource id #10
, но не сумму всех значений.2. Попробуйте
$result = mysql_query('SELECT SUM(value) AS value_sum FROM codes'); $row = mysql_fetch_assoc($result); $sum = $row['value_sum'];
.3. Что такое значение и value_sum?
Ответ №2:
$query = "SELECT * FROM tableName";
$query_run = mysql_query($query);
$qty= 0;
while ($num = mysql_fetch_assoc ($query_run)) {
$qty = $num['ColumnName'];
}
echo $qty;
Ответ №3:
Попробуйте это:
$sql = mysql_query("SELECT SUM(Value) as total FROM Codes");
$row = mysql_fetch_array($sql);
$sum = $row['total'];
Ответ №4:
Давайте используем следующее изображение в качестве примера для данных в нашей базе данных MySQL:
Теперь, как указано в вопросе, нам нужно найти сумму определенного столбца в таблице. Например, давайте добавим все значения столбца «duration_sec» для даты ’09-10-2018′ и только статус ‘выкл.’
Для этого условия следующим будет sql-запрос и код:
$sql_qry = "SELECT SUM(duration_sec) AS count
FROM tbl_npt
WHERE date='09-10-2018' AND status='off'";
$duration = $connection->query($sql_qry);
$record = $duration->fetch_array();
$total = $record['count'];
echo $total;
Ответ №5:
MySQL 5.6 (LAMP) . column_value — это столбец, который вы хотите сложить. table_name — это таблица.
Способ # 1
$qry = "SELECT column_value AS count
FROM table_name ";
$res = $db->query($qry);
$total = 0;
while ($rec = $db->fetchAssoc($res)) {
$total = $rec['count'];
}
echo "Total: " . $total . "n";
Способ # 2
$qry = "SELECT SUM(column_value) AS count
FROM table_name ";
$res = $db->query($qry);
$total = 0;
$rec = $db->fetchAssoc($res);
$total = $rec['count'];
echo "Total: " . $total . "n";
Метод # 3 -SQLi
$qry = "SELECT SUM(column_value) AS count
FROM table_name ";
$res = $conn->query($sql);
$total = 0;
$rec = row = $res->fetch_assoc();
$total = $rec['count'];
echo "Total: " . $total . "n";
Метод # 4: амортизированный (не использовать)
$res = mysql_query('SELECT SUM(column_value) AS count FROM table_name');
$row = mysql_fetch_assoc($res);
$sum = $row['count'];
Ответ №6:
$row['Value']
вероятно, это строка. Попробуйте использовать intval($row['Value'])
.
Кроме того, убедитесь, что вы установили $sum = 0
перед циклом.
Или, еще лучше, добавьте SUM(Value) AS Val_Sum
в свой SQL-запрос.
Ответ №7:
$result=mysql_query("SELECT SUM(column) AS total_value FROM table name WHERE column='value'");
$result=mysql_result($result,0,0);
Ответ №8:
Получаем сумму определенного значения строки с помощью PHP MYSQL
"SELECT SUM(filed_name) from table_name"
Комментарии:
1. Вы имеете в виду использование MySQL?
2. мы получаем сумму из MYSQL, когда получаем результат, тогда почему мы пытаемся выполнить некоторый цикл получения результата..
Ответ №9:
$sql = "SELECT SUM(Value) FROM Codes";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
sum = $row['SUM(price)'];
}
echo sum;