Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Br3n0k

Somando valores de uma Array dentro de um foreach

Recommended Posts

Boa tarde pessoal, estou um um problema pois é primeira vez que tento fazer algo do tipo, na Verdade acho que o problema é que eu não consigo achar uma forma lógica de resolver isso.

 

Bem vamos lá: no meu banco eu tenho armazenados alguns id de cobranças exp: Cobrança 1, Cobrança 2 e Cobrança 3,

Elas estão armazenadas separadas por vírgulas exp: 1,2,3

 

então eu para separar transformo em array utilizando um explode para remover as virgulas e jogo em um foreach

 

$cobrancas = explode(",",$resultadodobanco);

foreach($cobrancas as $cobranca){

 

}

 

ate ai beleza, só que estou precisando dar um valor a essas cobranças então minha ideia é colocar algo assim:

 

$cobrancas = explode(",",$resultadodobanco);

 

foreach($cobrancas as $cobranca){

<input type = "text" name="valor_da_cobraca">

}

 

como são 3 cobranças no exemplo iria me aparecer 3 inputs e nessas inputs eu iria digitar o valor de todas elas, mais eu gostaria de saber como somar todos estes valores para a próxima pagina, $valor_final = c1+c2+c3;.... tals, podem me dar uma luz? .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi!

 

Meio maluca essa ideia da virgula.

 

Mas você está no caminho certo sobre a solução.

<?php foreach($cobrancas as $cobranca): ?>
	<input type="text" name="valor_da_cobraca[<?php echo $id; ?>]">
<?php endforeach; ?>

ai dentro do arquivo .php q recebe você trabalha novamente com o foreach:

foreach($_POST['valor_da_cobraca'] as $vl_cobranca){
	echo $vl_cobranca;
}

o pulo do gato é o name="valor_da_cobraca[<?php echo $id; ?>]

Assim você vincula o id correspondente da sua cobrança ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não consegui, tentei tentei tentei, e nao consegui, uma ideia que tentei fazer segundo tua dica:

 

 

<?PHP
//Quando receber o valor das inputs
if(isset($_POST['go'])){

foreach($_POST['valor_cobranca'] as $vlr){
echo $vlr;
}
exit;
}
?>

<?PHP
$lista_cobrancas = "254,253,256";
$lista = explode(",",$lista_cobrancas);
?>

<form action = '<?PHP echo $_SERVER['PHP_SELF']; ?>' method='post'>
<?PHP
foreach ($lista as $cobranca){
echo $cobranca."<input type='text' name='valor_cobranca['".$cobranca."]> <br />";
}
?>
<input type='submit' name='go' value='Cobrar'>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vish eu q dei o exemplo errado.

 

Na real é só somar n inputs.

<?php
//Quando receber o valor das inputs
if(isset($_POST['go'])){
	
	$valor_final = 0;
	foreach($_POST['valor_cobranca'] as $vlr){
		$valor_final += $vlr;
	}
	echo $valor_final; 
	exit();
}



$lista_cobrancas = "254,253,256";
$lista = explode(",",$lista_cobrancas);
?>

<form action = '<?php echo $_SERVER['PHP_SELF']; ?>' method='post'>
	<?php
	foreach ($lista as $cobranca){
		echo $cobranca." <input type='text' name='valor_cobranca[]' /> <br />";
	}
	?>
	<input type='submit' name='go' value='Cobrar'>
</form>

Ai fica assim:
Se tiver 3 no explode, ele gera 3 caras desse:

<input type='text' name='valor_cobranca[]'>

No foreach você soma.

Não esquece de tratar direitinho a entrada de valor monetário, virgula e talz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Willian Simione
      Boa Noite, alguem poderia me ajudar em uma situação, estou tetnando gravar os dados da tela abaixo, porem nao estou conseguindo montar o jeito certo pra ele gravar todos os dados de uma vez

    • Por Giovanird
      Tenho uma tabela com a coluna média (valor decimal) .
       
      cod | media | cod_sala 1 1,98 5 2 2,34 2 3 1,32 5 4 2,51 3 5 1,65 1 6 2,78 5 7 4,95 4 8 0,75 4 9 1,23 1 10 1,63 2 11 1,55 3 Preciso no select MYSQL ou dentro do foreach multiplicar os valores do campo média, de acordo com o fitro por cod_sala
      Exemplo pelo cod_sala: 5
      Sendo o resultdo final: 1,98 * 1,32 * 2,78 = 7,26

      Desde já agradeço!
    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
    • Por Ruyter
      Estou com problema para resolver uma solução que estou necessitando. Toda ajuda será bem-vinda!
       
      Tenho uma tabela onde há vários registros com um mesmo IDENTIFICADOR e vários INDENTIFICADORES diferentes em uma mesma coluna.
      Como percorrer os registros de uma tabela, com base nos IDENTIFICADORES?
      Preciso também analisar um período por data (>= e <=) e ABSTRAIR deste período o valor MIN e MAX de uma outra coluna
      Esta consulta precisa ser realizada em cada IDENTIFICADOR DISTINTO?
       
      Já utilizei o BETWEEN, mas ao usar o código com o foreach() no PHP ele lê apenas um registro.
      O código que estou trabalhando é este:
       
      SELECT conf_hidro_inatividade, cons_reg_ident_iot, cons_data, MIN(cons_leitura_atual), MAX(cons_leitura_atual), hidro_valvula, hidro_cliente FROM tab_conf_hidro, tab_consumo INNER JOIN tab_hidrometros ON cons_reg_ident_iot = hidro_ident_iot WHERE cons_reg_ident_iot = '20220701001' and conf_hidro_inatividade = 'sim' and hidro_valvula = 'aberta' and cons_data BETWEEN '2022-10-10' and '2022-10-13';  
      Com:

       
      SELECT conf_hidro_inatividade, cons_reg_ident_iot, cons_data, cons_leitura_atual, hidro_valvula, hidro_cliente /*(sem o MIN e MAX na mesma coluna)*/ WHERE cons_reg_ident_iot != ' ' and conf_hidro_inatividade = 'sim' and hidro_valvula = 'aberta';  
      usando dentro do foreach(), percorre todos os registros.
    • Por k9studio
      Meus amigos,
      preciso de um help
      seguinte tenho um credito quero lançar em varias faturas eum foreach até o valor do credito
      tipo exemplo a baixo:
      $credito = 100;
      foreach($shows as $rows){
      fatura 1 Valor 20,00  -100 marca como pago
      fatura 2 Valor 20,00  -80  marca como pago
      fatura 3 Valor 20,00  -60  marca como pago
      fatura 4 Valor 20,00  -40  marca como pago
      fatura 5 Valor 30,00  -20  aqui deixa como não pago
      }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.