Como criar relatórios no MySQL com PHP
Estou desenvolvendo um sistema para uso particular onde realizo diariamente o cadastro dos seguintes valores no BD conforme abaixo:
INSERT INTO `viagem`(
`viagem_nr`,
`viagem_valor`,
`viagem_gastos`,
`viagem_usuario`,
`viagem_data`,
`viagem_hora`
)
VALUES(
'$viagem_nr',
'$viagem_valor',
'$viagem_gastos',
'$viagem_usuario',
'$data_atual',
'$hora_atual'
)
No caso viagem_usuario é a pessoa que preencheu o formulário com as informações.
Até o momento já consegui fazer um relatório do dia atual e do mês atual, abaixo esta o código do relatório diário:
<?php
include_once("../acesso/conexao.php");
include_once("../config.php");
include_once('../acesso/verifica_login.php');
//Seleção dos dados do BD com Filtragem para exibição na tabela
$filtro_data = date('Y-m-d');
$result_viagem = "SELECT * FROM viagem WHERE viagem_data = '$filtro_data' ORDER BY viagem_nr";
$resultado_viagem = mysqli_query($conexao, $result_viagem);
//Grafico
$data1 = '';
$data2 = '';
//Query para pegar os dados da tabela
$filtro_data = date('Y-m-d');
$sql = "SELECT * FROM viagem WHERE viagem_data = '$filtro_data' ORDER BY viagem_nr";
$result = mysqli_query($conexao, $sql);
//Loop
while ($row = mysqli_fetch_array($result)) {
$data1 = $data1 . '"'. $row['viagem_valor'].'",';
$data2 = $data2 . '"'. $row['viagem_gastos'] .'",';
}
$data1 = trim($data1,",");
$data2 = trim($data2,",");
?>
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<Meta http-equiv="refresh" content="60" />
<meta name="author" content="<?php echo $author; ?>">
<meta name="email" content="<?php echo $email_author; ?>">
<title><?php echo $title; ?></title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.min.js"></script>
<link href="https://getbootstrap.com.br/docs/4.1/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="canonical" href="https://getbootstrap.com/docs/4.3/examples/navbar-fixed/">
<!-- Bootstrap core CSS -->
<link href="https://getbootstrap.com/docs/4.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<style>
.bd-placeholder-img {
font-size: 1.125rem;
text-anchor: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
@media (min-width: 768px) {
.bd-placeholder-img-lg {
font-size: 3.5rem;
}
}
.container{
font-family: Arial;
margin: 5px 5px 30px 5px;
padding: 0;
color: white;
text-align: center;
background: #555652;
color: #E8E9EB;
background: #222;
border: #555652 1px solid;
padding: 10px;
}
</style>
<!-- Custom styles for this template -->
<link href="css/navbar-top-fixed.css" rel="stylesheet">
</head>
<body><!--Inicio da NavBar-->
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<a class="navbar-brand" href="#"><?php echo $title; ?></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="../plataforma">Home<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
VIAGENS
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="../sistema/viagem01.php">1ª Viagem</a>
<a class="dropdown-item" href="../sistema/viagem02.php">2ª Viagem</a>
<a class="dropdown-item" href="../sistema/viagem03.php">3ª Viagem</a>
<a class="dropdown-item" href="../sistema/viagem04.php">4ª Viagem</a>
<a class="dropdown-item" href="../sistema/viagem05.php">5ª Viagem</a>
<a class="dropdown-item" href="../sistema/viagem06.php">6ª Viagem</a>
<a class="dropdown-item" href="../sistema/viagem07.php">7ª Viagem</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="../sistema/encerramento.php">Fechamento</a>
</div>
</li>
</ul>
</div>
</nav><!--Fim da NavBar-->
<main role="main" class="col-md-12 ml-sm-auto col-lg-12 px-4">
<h4>Bem Vindo, <b><?php echo $_SESSION['nome']; ?></b>.</h4>
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h2">Dashboard</h1>
<div class="btn-toolbar mb-2 mb-md-0">
<button class="btn btn-sm btn-outline-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span data-feather="calendar"></span>
Hoje
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Mês Atual</a>
</div>
</div>
</div>
<div class="container">
<h1><?php echo $title; ?></h1>
<canvas id="chart" style="width: 80%; height: 50vh; background: #222; border: 1px solid #555652; margin-top: 10px;"></canvas>
<script>
var ctx = document.getElementById("chart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["1ª","2ª","3ª","4ª","5ª","6ª","7ª"],
datasets:
[{
label: 'Receita',
data: [<?php echo $data1; ?>],
backgroundColor: 'transparent',
borderColor:'rgba(46, 204, 113,1.0)',
borderWidth: 3
},
{
label: 'Gastos',
data: [<?php echo $data2; ?>],
backgroundColor: 'transparent',
borderColor:'rgba(235, 47, 6,1.0)',
borderWidth: 3
}]
},
options: {
scales: {scales:{yAxes: [{beginAtZero: false}], xAxes: [{autoskip: true, maxTicketsLimit: 20}]}},
tooltips:{mode: 'index'},
legend:{display: true, position: 'top', labels: {fontColor: 'rgb(255, 255, 255)', fontSize: 16}}
}
});
</script>
</div>
<h2>HOJE</h2>
<div class="table-responsive">
<table id="valores" class="table table-striped table-sm display">
<thead>
<tr align="center">
<th>ID</th>
<th>Data</th>
<th>Hora</th>
<th>Viagem</th>
<th>Valor</th>
<th>Gastos</th>
<th>Usuário</th>
</tr>
</thead>
<tbody>
<?php while ($rows_viagens = mysqli_fetch_assoc($resultado_viagem)) { ?>
<tr align="center">
<td><?php echo $rows_viagens['viagem_ID']; ?></td>
<td><?php echo date('d/m/Y', strtotime($rows_viagens['viagem_data'])); ?></td>
<td><?php echo $rows_viagens['viagem_hora']; ?></td>
<td><?php echo $rows_viagens['viagem_nr']; ?></td>
<td><?php echo $rows_viagens['viagem_valor']; ?></td>
<td><?php echo $rows_viagens['viagem_gastos']; ?></td>
<td><?php echo $rows_viagens['viagem_usuario']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</main>
</div>
</div>
<!-- JavaScript do Bootstrap -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="https://getbootstrap.com/docs/4.3/assets/js/vendor/jquery-slim.min.js"><\/script>')</script>
<script src="https://getbootstrap.com.br/docs/4.1/assets/js/vendor/popper.min.js"></script>
<script src="https://getbootstrap.com.br/docs/4.1/dist/js/bootstrap.min.js"></script>
<script src="https://getbootstrap.com/docs/4.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script>
<!-- Ícones -->
<script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script>
<script>feather.replace()
</script>
<!-- Gráficos -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.1/Chart.min.js"></script>
</body>
</html>
Porém os mesmo são atualizados automaticamente, eu necessito puxar do BD, todos os dados cadastrados no mês de julho como exemplo, e esse relatório pode ser no formato de uma tabela simples, mas que ele quando gerado fique salvo na plataforma para consultas futuras e não seja alterado.Discussão (0)
Carregando comentários...