Сложить цифры в массив


Я использую цикл, чтобы показать все ответы на соответствующий столбец в моей бд. Но мне нужно сложить все цифры, содержащиеся в этом массиве.

Код, который я использую:

<?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
Author: gmsantos, 2015-07-06

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