Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Colegas,
Eu não estou conseguindo fazer uma soma de valores, que imagino seja simples mas não encontrei nada na net que ajudasse.
Eu preciso somar um total de um while que, em resumo, é uma quantidade buscada no BD x um valor que pego em um API.
$resultadod = mysqli_query($con, "SELECT * FROM acoes WHERE qtv = '0'");
$num_rowsd = mysqli_num_rows($resultadod);
{
while($dadosd = mysqli_fetch_array($resultadod)){
$qtC = $dadosd["qtC"];
$acao = $acao["acao"];
$vatual = "https://api.hgbrasil.com/finance/stock_price?key=$chave&symbol=$acao";
$total = $qtC * $vatual;
}
Esse script tá bem resumido. Só com o principal para entenderem. Caso queiram o código inteiro para usá-lo, é só pedir.
O $vatual eu pego em um API
Preciso então somar o $total de todos os registros retornados no fim do while. Por exemplo, tenho duas ações e quero a soma do valor atual das duas.Você pode usar a função array_sum() do php para calcular a soma de todos os valores numéricos em uma array.
Vou tentar com este exemplo para que você possam entender da melhor forma como essa função funciona:
<?php
$array1 = array(15, 10, 4.5, 8, 15);
$array2 = array("ea" => 1.5, "qweb" => 6.5, "qwea" => 3.2, "qefg" => 10.4);
echo array_sum( $array1 ); // Saídas: 52.5
echo " - ";
echo array_sum( $array2 ); // Saídas: 21.6
?>
Veja este outros Exemplos
[LINK1](https://pt.stackoverflow.com/questions/119108/somar-valor-de-um-array)
[LINK2](https://www.php.net/manual/pt_BR/function.array-sum.php)
Espero que possa lhe ajudar da melhor forma>
15 horas atrás, Jack Oliveira disse:
Você pode usar a função array_sum() do php para calcular a soma de todos os valores numéricos em uma array.
Vou tentar com este exemplo para que você possam entender da melhor forma como essa função funciona:
<?php
$array1 = array(15, 10, 4.5, 8, 15);
$array2 = array("ea" => 1.5, "qweb" => 6.5, "qwea" => 3.2, "qefg" => 10.4);
echo array_sum( $array1 ); // Saídas: 52.5
echo " - ";
echo array_sum( $array2 ); // Saídas: 21.6
?>
Veja este outros Exemplos
[LINK1](https://pt.stackoverflow.com/questions/119108/somar-valor-de-um-array)
[LINK2](https://www.php.net/manual/pt_BR/function.array-sum.php)
Espero que possa lhe ajudar da melhor forma
Então... eu até tinha visto esses exemplos mas o problema é que não tenho a quantidade certa de resultados vindos do BD. O while é q vai trazer. E depois que trouxer, vou multiplicar o valor trazido por outro. Esse resultado é que eu não sei como fazer pra inserir no array.
Já pesquisei sobre arrays mas tudo q encontrei é básico como esses exemplos./*
* inicio os arrays fora do loop para salvar valores
*/
$qtC = [];
$vatual = [];
while($dadosd = mysqli_fetch_array($resultadod)){
/*
* Dentro do while armazeno os resultados nos arrays
*/
$qtC[] = $dadosd["qtC"];
$vatual[] = "https://api.hgbrasil.com/finance/stock_price?key=$chave&symbol=$acao["acao"]";
}
/*
* Somo todos os valores de cada um dos arrays
*/
$totalqtC = array_sum($qtC);
$totalvatual = array_sum($vatual);
/*
* Multiplico os valores somados e então os imprimo
*/
$totalfinal = ($totalqtC * $totalvatual)
echo $totalfinal;
Isso seria basicamente o que você demonstra que procura supondo que para cada resultado do while o $vatual seja diferente baseado na sua ação.
Sempre que você precisar salvar dados em array dentro de um loop, inicie a variavel fora do loop como array e então a aplique dentro do loop para que cada iteração seja armazenada numa chave do array.>
17 minutos atrás, Guilherme Luiz disse:
/*
* inicio os arrays fora do loop para salvar valores
*/
$qtC = [];
$vatual = [];
while($dadosd = mysqli_fetch_array($resultadod)){
/*
* Dentro do while armazeno os resultados nos arrays
*/
$qtC[] = $dadosd["qtC"];
$vatual[] = "https://api.hgbrasil.com/finance/stock_price?key=$chave&symbol=$acao["acao"]";
}
/*
* Somo todos os valores de cada um dos arrays
*/
$totalqtC = array_sum($qtC);
$totalvatual = array_sum($vatual);
/*
* Multiplico os valores somados e então os imprimo
*/
$totalfinal = ($totalqtC * $totalvatual)
echo $totalfinal;
Isso seria basicamente o que você demonstra que procura supondo que para cada resultado do while o $vatual seja diferente baseado na sua ação.
Sempre que você precisar salvar dados em array dentro de um loop, inicie a variavel fora do loop como array e então a aplique dentro do loop para que cada iteração seja armazenada numa chave do array.
Legal!!!!!!
Obrigado!!!! Esse é o fórum!!!!!
??? Deveria está fazendo o calculo?
Tentou verificar o que são:
$qtC
e
$vatual
Faça um var_dump dessas variáveis e veja se seus valores são dados que podem ser calculados, pois acredito que possa ser essa a razão de não fazer o calculo.
Se mesmo assim forem strings numérias converta-as em INTEGER antes do calculo.