Ir para conteúdo
Fórum Script Brasil
  • 0

Somar valores


MTavares

Pergunta

Olá colegas,

estou com uma dúvida do qual não estou conseguindo resolver. Eu tenho um formulário que pega os valores da seguinte forma:

Formulário:

<input type="text" name="IdadeClientes[]" />
Só que quero dividir os clientes que são maiores de 18 e os menores de 18. Até aqui tudo OK, mas esbarrei no seguinte caso. Quero somar quantos clientes são menores de 18 anos, só que não estou conseguindo. Alguém poderia me dar uma força? O código que estou usando está abaixo:
if($_POST): // Estou usando dessa forma, pois tenho outros campos além do IdadeClientes
    
       for($i = 0; $i < count($_POST['IdadeClientes']); $i++):
                            
            if($_POST['IdadeClientes'] <= 18):
              
                            $qtdCliente = "?"; // Aqui que empaquei..rsrsrsrsrs.. quero somar quantos clientes são menores de 18 anos
         
            endif;

      endfor;
endif;

Abraços

Editado por MTavares
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

beleza ESerra...

na verdade os valores consigo pegar, o que não estou conseguindo é somar qtos clientes são menores de 18 anos.... Por ex: vamos imaginar o seguinte cenário: o cliente acessa o sistema e cadastra as pessoas (1 adulto e 3 filhos) sendo que esses filhos dois são menores de 18 anos e um é maior de 18 anos. É exatamente aí que parei... quero mostrar que dos três filhos, 02 são menores de 18 anos e 01 maior que 18 anos. Ficando assim:

Quantidade de filhos menores de 18 anos: 02

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Tentei colocar dessa forma:

$somarMenor = array($_POST['IdadeClientes']);

$totalmenor = array_sum($somarMenor);

Porém ele me retorna da seguinte forma:

(Levando em consideração que tem 1 maior que 18 anos e 2 menores de 18 anos)

Maior que 18 = 9

Menor que 18 = 1

Menor que 18 = 2

De onde saiu esse 9 se só houve 3 registros kkkkkkkkkkkkkkkkkkkkkkkkkkkk

abraços

Editado por MTavares
Link para o comentário
Compartilhar em outros sites

  • 0

Eu joguei os valores no campo e tentei fazer esse cálculo direto da query veja:

SELECT COUNT(Idade < 4) AS IdadeMenor, COUNT(Idade > 5) AS IdadeMaior FROM tabela;

Só que retornou o seguinte:

+------------+------------+
| IdadeMenor | IdadeMaior |
+------------+------------+
|          4 |          4 |
+------------+------------+
Sendo que os valores verdadeiros são:
+-------+
| Idade |
+-------+
| 48     |
| 19     |
| 12     |
| 12     |
+-------+
Observe que tem 2 maior que 18 e 2 menores de 18 (a idade 48 é do pai). Corrigindo... Coloquei da seguinte forma:
SELECT SUM(Idade < 4), SUM(Idade > 5 AND Idade < 18) FROM tabelas;
e retornou:
+----------------+-------------------------------+
| SUM(Idade < 4) | SUM(Idade > 5 AND Idade < 18) |
+----------------+-------------------------------+
|              2 |                             1 |
+----------------+-------------------------------+

Parece que funcionou.... farei novos testes e qualquer coisa volto aqui...

abraços

Editado por MTavares
Link para o comentário
Compartilhar em outros sites

  • 0

Olá novamente :lol:

eu estou quase lá... usei a seguinte query:

SELECT SUM(Idade <= 18) AS IdadeMenor, SUM(Idade > 18 AND Idade < 25) AS IdadeMaior FROM tabelas;

O único problema é que ele me retorna somente a primeira linha, só que eu quero pecorrer a tabela para fazer essa verificação.

Alguém teria uma solução para isso? ^_^

Obrigado...

Link para o comentário
Compartilhar em outros sites

  • 0
beleza ESerra...

na verdade os valores consigo pegar, o que não estou conseguindo é somar qtos clientes são menores de 18 anos.... Por ex: vamos imaginar o seguinte cenário: o cliente acessa o sistema e cadastra as pessoas (1 adulto e 3 filhos) sendo que esses filhos dois são menores de 18 anos e um é maior de 18 anos. É exatamente aí que parei... quero mostrar que dos três filhos, 02 são menores de 18 anos e 01 maior que 18 anos. Ficando assim:

Quantidade de filhos menores de 18 anos: 02

abraços

$maiores = 0;
$menores = 0;
foreach($_POST['IdadeClientes'] as $idade){
if($idade <= '18'){
$menores++;
}else{
maiores++;
}
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...