Сложить цифры в массив
Я использую цикл, чтобы показать все ответы на соответствующий столбец в моей бд. Но мне нужно сложить все цифры, содержащиеся в этом массиве.
Код, который я использую:
<?php
$host = "xxx";
$db = "xxx";
$user = "xxx";
$pass = "xxx";
// conecta ao banco de dados
$con = mysql_pconnect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR);
// seleciona a base de dados em que vamos trabalhar
mysql_select_db($db, $con);
// cria a instrução SQL que vai selecionar os dados
$query = sprintf("SELECT totalPrice, Time FROM deposits ORDER BY Time ASC");
// executa a query
$dados = mysql_query($query, $con) or die(mysql_error());
// transforma os dados em um array
$linha = mysql_fetch_assoc($dados);
// calcula quantos dados retornaram
$total = mysql_num_rows($dados);
?>
<html>
<head>
<title>Investimentos</title>
</head>
<body>
<?php
// se o número de resultados for maior que zero, mostra os dados
if($total > 0) {
// inicia o loop que vai mostrar todos os dados
do {
?>
<p><?=$linha['totalPrice']?>$</p>
<?php
// finaliza o loop que vai mostrar os dados
}while($linha = mysql_fetch_assoc($dados));
// fim do if
}
?>
</body>
</html>
<?php
// tira o resultado da busca da memória
mysql_free_result($dados);
результат этого массива, как это:
120$
-100$
400$
-150$
500$
-460$
100$
-290$
100$
-295$
120$
180$
-600$
-700$
-100$
1200$
100$
-200$
100$
600$
-120$
Точные, что здесь, в конце оставайтесь общая сумма этих цифр, может ли кто-нибудь помочь?
1
2 answers
Создайте переменную, которая получает сумму массива, например,
int somaTotal;
somaTotal = somaTotal + atoi(linha[Indice])
Что-То типа, я использовал atoi, что это функция в C, которая преобразует char в целое число.
Попробуйте так:
$host = "xxx";
$db = "xxx";
$user = "xxx";
$pass = "xxx";
$somaTotal = 0.0;
// conecta ao banco de dados
$con = mysql_pconnect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR);
// seleciona a base de dados em que vamos trabalhar
mysql_select_db($db, $con);
// cria a instrução SQL que vai selecionar os dados
$query = sprintf("SELECT totalPrice, Time FROM deposits ORDER BY Time ASC");
// executa a query
$dados = mysql_query($query, $con) or die(mysql_error());
// transforma os dados em um array
$linha = mysql_fetch_assoc($dados);
// calcula quantos dados retornaram
$total = mysql_num_rows($dados);
?>
<html>
<head>
<title>Investimentos</title>
</head>
<body>
<?php
// se o número de resultados for maior que zero, mostra os dados
if($total > 0) {
// inicia o loop que vai mostrar todos os dados
do {
?>
$somaTotal += (float)$linha['totalPrice'];
<?php
// finaliza o loop que vai mostrar os dados
}while($linha = mysql_fetch_assoc($dados));
// fim do if
print $somaTotal;
}
?>
</body>
</html>
<?php
// tira o resultado da busca da memória
mysql_free_result($dados);
0
Author: Vynstus, 2015-07-06 17:32:08
Вы можете использовать array_sum
например:
PHP
:
$array = array(150,500,460,100,-290,100, 295,120,180,600,700,100,1200,100,200,100,600,-120); echo array_sum($array); /*retorna a soma do array. se você informar o indice $linha['totalPrice'] ira somar apenas os valores do indice TotalPrice */
Mysql
:
SELECT SUM(nome_coluna) AS valor_soma FROM nome_tabela;
Вы можете даже сложить других столбцов...
SELECT SUM(nome_coluna1 + nome_coluna2) AS valor_total_soma FROM nome_tabela;
Php
выглядит так:
$result = mysql_query('SELECT SUM(nome_coluna1) AS valor_soma FROM nome_tabela'); $row = mysql_fetch_assoc($result); $sum = $row['valor_soma '];
0
Author: Gabriel Rodrigues, 2015-07-06 15:23:05