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

RELÁTORIO PHP MYSQL USANDO SUM


edyr0x

Pergunta

Alguém poderia me ajudar a gerar uma relátório em php?

preciso gerar uma tabela com total de bolsas vendidas por mês.  com total de cada modelo de bolsa fabricada por mês e total geral

até consegui, porém gostaria de gerar com os meses nas colunas e só consegui gerar com os meses nas linhas... 

tentei da seguinte forma:

$link = $conexao;
$consultar = "SELECT SUM(`resumo_bolsas_80`) AS m80, 
       SUM(`resumo_bolsa_12`) AS m12,
      SUM(`resumo_bolsa_20`) AS m20,
       SUM(`resumo_bolsa_40`) AS m40,
        SUM(`resumo_bolsa_90`) AS m90, 
         SUM(`resumo_bolsa_38`) AS m38, 
       MONTHNAME(resumo_data) AS `mes` 
FROM  resocor
GROUP  BY YEAR(`resumo_data`), 
          MONTH(`resumo_data`)"; 

$resulta = mysqli_query($link, $consultar);
 

################## codigo php #######################

<table>
      <tr>
            <th class="tg-sg5v">MES</th>
            <th class="tg-sg5v">80</th>
            <th class="tg-sg5v">12</th>
            <th class="tg-sg5v">20</th>
            <th class="tg-sg5v">40</th>
            <th class="tg-sg5v">90</th>
            <th class="tg-sg5v">38</th>
        </tr>
        <?php 
            foreach ($resulta as $row) {
        ?>
            <tr>
               
                <td class="tg-0w8i"><?php echo $row['mes']; ?></td>
                <td class="tg-0w8i"><?php echo $row['m80']; ?></td>
                 <td class="tg-0w8i"><?php echo $row['m12']; ?></td>
                 <td class="tg-0w8i"><?php echo $row['m20']; ?></td>
                 <td class="tg-0w8i"><?php echo $row['m40']; ?></td>
                 <td class="tg-0w8i"><?php echo $row['m90']; ?></td>
                 <td class="tg-0w8i"><?php echo $row['m38']; ?></td>
            </tr>
        <?php  }     ?>
 </table
 

SEGUE TABELA ANEXADA DE COMO GOSTARIA QUE APARECESSE NO RELATORIO

 

TABELA_BOLSAS.png

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

9 respostass a esta questão

Posts Recomendados

  • 0
<?php
$bolsas = [
	'm12' => ['nome' => 'Bolsa 12', 'total' => 0],
	'm20' => ['nome' => 'Bolsa 20', 'total' => 0],
	'm38' => ['nome' => 'Bolsa 38', 'total' => 0],
	'm40' => ['nome' => 'Bolsa 40', 'total' => 0],
	'm80' => ['nome' => 'Bolsa 80', 'total' => 0],
	'm90' => ['nome' => 'Bolsa 90', 'total' => 0],
];
$totalGeral = 0;
foreach($resulta as $row) {
	$bolsas['m12'][$row['mes']] = $row['m12'];
	$bolsas['m20'][$row['mes']] = $row['m20'];
	$bolsas['m38'][$row['mes']] = $row['m38'];
	$bolsas['m40'][$row['mes']] = $row['m40'];
	$bolsas['m80'][$row['mes']] = $row['m80'];
	$bolsas['m90'][$row['mes']] = $row['m90'];

	$bolsas['m12']['total'] += $row['m12'];
	$bolsas['m20']['total'] += $row['m20'];
	$bolsas['m38']['total'] += $row['m38'];
	$bolsas['m40']['total'] += $row['m40'];
	$bolsas['m80']['total'] += $row['m80'];
	$bolsas['m90']['total'] += $row['m90'];

	$meses[$row['mes']] = $row['m12']+$row['m20']+$row['m38']+$row['m40']+$row['m80']+$row['m90'];

	$totalGeral += $meses[$row['mes']];
}
?>
<table>
	<tr>
		<th class="tg-sg5v"></th>
		<th class="tg-sg5v">Total Geral</th>
		<th class="tg-sg5v">Jan</th>
		<th class="tg-sg5v">Fev</th>
		<th class="tg-sg5v">Mar</th>
		<th class="tg-sg5v">Abr</th>
		<th class="tg-sg5v">Mai</th>
	</tr>
	<tr>
		<th class="tg-sg5v">Total de Bolsas</th>
		<th class="tg-sg5v"><?php echo $totalGeral; ?></th>
		<td class="tg-0w8i"><?php echo $meses[1]; ?></td>
		<td class="tg-0w8i"><?php echo $meses[2]; ?></td>
		<td class="tg-0w8i"><?php echo $meses[3]; ?></td>
		<td class="tg-0w8i"><?php echo $meses[4]; ?></td>
		<td class="tg-0w8i"><?php echo $meses[5]; ?></td>
	</tr>
	<?php foreach ($bolsas as $bolsa) { ?>
	<tr>
		<td class="tg-0w8i"><?php echo $bolsa['nome']; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa['total']; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[1]; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[2]; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[3]; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[4]; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[5]; ?></td>
	</tr>
	<?php } ?>
 </table>

Ai você completa o resto dos meses

Link para o comentário
Compartilhar em outros sites

  • 0
10 horas atrás, Leonardo Persan disse:

<?php
$bolsas = [
	'm12' => ['nome' => 'Bolsa 12', 'total' => 0],
	'm20' => ['nome' => 'Bolsa 20', 'total' => 0],
	'm38' => ['nome' => 'Bolsa 38', 'total' => 0],
	'm40' => ['nome' => 'Bolsa 40', 'total' => 0],
	'm80' => ['nome' => 'Bolsa 80', 'total' => 0],
	'm90' => ['nome' => 'Bolsa 90', 'total' => 0],
];
$totalGeral = 0;
foreach($resulta as $row) {
	$bolsas['m12'][$row['mes']] = $row['m12'];
	$bolsas['m20'][$row['mes']] = $row['m20'];
	$bolsas['m38'][$row['mes']] = $row['m38'];
	$bolsas['m40'][$row['mes']] = $row['m40'];
	$bolsas['m80'][$row['mes']] = $row['m80'];
	$bolsas['m90'][$row['mes']] = $row['m90'];

	$bolsas['m12']['total'] += $row['m12'];
	$bolsas['m20']['total'] += $row['m20'];
	$bolsas['m38']['total'] += $row['m38'];
	$bolsas['m40']['total'] += $row['m40'];
	$bolsas['m80']['total'] += $row['m80'];
	$bolsas['m90']['total'] += $row['m90'];

	$meses[$row['mes']] = $row['m12']+$row['m20']+$row['m38']+$row['m40']+$row['m80']+$row['m90'];

	$totalGeral += $meses[$row['mes']];
}
?>
<table>
	<tr>
		<th class="tg-sg5v"></th>
		<th class="tg-sg5v">Total Geral</th>
		<th class="tg-sg5v">Jan</th>
		<th class="tg-sg5v">Fev</th>
		<th class="tg-sg5v">Mar</th>
		<th class="tg-sg5v">Abr</th>
		<th class="tg-sg5v">Mai</th>
	</tr>
	<tr>
		<th class="tg-sg5v">Total de Bolsas</th>
		<th class="tg-sg5v"><?php echo $totalGeral; ?></th>
		<td class="tg-0w8i"><?php echo $meses[1]; ?></td>
		<td class="tg-0w8i"><?php echo $meses[2]; ?></td>
		<td class="tg-0w8i"><?php echo $meses[3]; ?></td>
		<td class="tg-0w8i"><?php echo $meses[4]; ?></td>
		<td class="tg-0w8i"><?php echo $meses[5]; ?></td>
	</tr>
	<?php foreach ($bolsas as $bolsa) { ?>
	<tr>
		<td class="tg-0w8i"><?php echo $bolsa['nome']; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa['total']; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[1]; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[2]; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[3]; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[4]; ?></td>
		<td class="tg-0w8i"><?php echo $bolsa[5]; ?></td>
	</tr>
	<?php } ?>
 </table>

Ai você completa o resto dos meses

Obrigado pela dica Leonardo.

Estou quase lá... mas acho que estou errando em algum lugar...

minha tabela só saiu a soma total, os meses ficaram em branco...

a tabela ficou assim agora..

 

 

tabela_bolsas2.png

Link para o comentário
Compartilhar em outros sites

  • 0
5 horas atrás, Leonardo Persan disse:

Dá um var_dump em $bolsa e printa aqui.


<?php foreach ($bolsas as $bolsa) { var_dump($bolsa); ?>

 

array(5) { ["nome"]=> string(8) "Bolsa 12" ["total"]=> int(2) ["janeiro"]=> string(1) "0" ["fevereiro"]=> string(1) "0" ["março"]=> string(1) "2" } array(5) { ["nome"]=> string(8) "Bolsa 20" ["total"]=> int(0) ["janeiro"]=> string(1) "0" ["fevereiro"]=> string(1) "0" ["março"]=> string(1) "0" } array(5) { ["nome"]=> string(8) "Bolsa 38" ["total"]=> int(2) ["janeiro"]=> string(1) "0" ["fevereiro"]=> string(1) "2" ["março"]=> string(1) "0" } array(5) { ["nome"]=> string(8) "Bolsa 40" ["total"]=> int(3) ["janeiro"]=> string(1) "0" ["fevereiro"]=> string(1) "0" ["março"]=> string(1) "3" } array(5) { ["nome"]=> string(8) "Bolsa 80" ["total"]=> int(7) ["janeiro"]=> string(1) "0" ["fevereiro"]=> string(1) "5" ["março"]=> string(1) "2" } array(5) { ["nome"]=> string(8) "Bolsa 90" ["total"]=> int(2) ["janeiro"]=> string(1) "0" ["fevereiro"]=> string(1) "2" ["março"]=> string(1) "0" }

Link para o comentário
Compartilhar em outros sites

  • 0

Ah tah, então troca 1, 2, 3 por janeiro, fevereiro, março ...

<?php foreach ($bolsas as $bolsa) { ?>
<tr>
  <td class="tg-0w8i"><?php echo $bolsa['nome']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['total']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['janeiro']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['fevereiro']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['março']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['abril']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['maio']; ?></td>
</tr>
<?php } ?>

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 16/02/2019 em 09:42, edyr0x disse:

Muito Obrigado Leonardo! Deu certo! 🙏

Agora vou partir pro próximo passo que é não aparecer os resultados que todos os meses sejam "0"

 

Em 13/02/2019 em 11:54, Leonardo Persan disse:

Ah tah, então troca 1, 2, 3 por janeiro, fevereiro, março ...


<?php foreach ($bolsas as $bolsa) { ?>
<tr>
  <td class="tg-0w8i"><?php echo $bolsa['nome']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['total']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['janeiro']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['fevereiro']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['março']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['abril']; ?></td>
  <td class="tg-0w8i"><?php echo $bolsa['maio']; ?></td>
</tr>
<?php } ?>

 

Boa tarde Leonardo!

poderia me ajudar em mais uma questão?

 

quero gerar, uma tabela que pegue tipo de camisa, quantidade e data... na verdade quero que some a quantidade de camisa P, M, e G produzidas no determinado mês... como esta da imagem em anexo.

segue meu banco:

roupas

id quantidade data camisas usuario local

segue meu código:

$link = $conexao;


mysqli_query($conexao,"SET lc_time_names = 'pt_BR'");


$consultar = "SELECT SUM(`quantidade`) AS qtd, MONTHNAME(data) AS mes, camisas AS cam FROM roupas GROUP BY MONTH(`data`), camisas";
 

$resulta = mysqli_query($link, $consultar);

<table>
      <tr>
            <th class="tg-sg5v">MES</th>
            <th class="tg-sg5v">CAMISA</th>
            <th class="tg-sg5v">QUANT</th>
            
        </tr>
        <?php 
            foreach ($resulta as $row) {
        ?>
            <tr>
               
                <td class="tg-0w8i"><?php echo $row['mes']; ?></td>
                <td class="tg-0w8i"><?php echo $row['cam']; ?></td>
                 <td class="tg-0w8i"><?php echo $row['qtd']; ?></td>
                 
            </tr>
        <?php  }     ?>
 </table

TABELA_CAMISAS.png

Link para o comentário
Compartilhar em outros sites

  • 0
21 horas atrás, Leonardo Persan disse:

É só seguir o mesmo princípio da outra tabela.

Primeiro acerta a primeira linha com Total e os meses.

Depois você vai escrevendo os dados.

Posso fazer para você por R$40,00, ai você pode me dar acesso ou uma cópia do código.

ok, te mandei msg no privado

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...