Erro Exibição de Dados
12/01/2023
0
tenho um código sobre 2 banco de dados, onde o primeiro são registros e o segundo é o acompanhamento desses registros.
Sendo assim, o relatório final, deve exibir apenas os registros que estão em andamento das unidades. O meu problema está no seguinte: na primeira linha, da unidade ADIB, possui 161 registros. Caso todos esses registros estivessem com o acompanhamento em dia, deveria continuar 161 nesta coluna, as duas do meio zeradas e a última repetindo o 161. Contudo, ele omite toda essa linha, como se não existisse nenhum dado.
Segue abaixo como está o código:
<?php
include_once './autenticacao.php';
include_once'../../conexao.php';
include_once '../../funcoes.php';
$cnesbusca = $_SESSION["cnes"];
$sqlbusca = "select
CNES,
NOME_UNIDADE
from UNIDADES
where CNES = '".$cnesbusca."'
";
$resultbusca = mysqli_query($con, $sqlbusca);
$rowbusca = mysqli_fetch_array($resultbusca);
$nomeunidade = $rowbusca["NOME_UNIDADE"];
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Acompanhamento das Notificações de Violência</title>
<!-- Bootstrap Core CSS -->
<link href="../../css/bootstrap.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="../../css/modern-business.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="../../font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<style>
table#relatorio{
width: 90%;
margin-top: 1%;
}
table#relatorio th{
background-color: #6495ED;
color: white;
font-size:7.5pt;
}
table#relatorio td{
background-color: white;
color: black;
font-size:7.5pt;
}
</style>
</head>
<body>
<?php
include_once '../../nav-menu2.php';
?>
<!-- Page Content -->
<div class="container" style="width: 85%">
<?php
include_once 'cabecalho.php';
?>
<!-- Content Row -->
<div class="row">
<?php
include_once 'barra-lateral.php';
?>
<!-- Content Column -->
<div class="col-md-9" style="width: 82.5%">
<form class="form-inline" action="relatorios.php" autocomplete="off" method="get">
<div id="form-callcenter">
<label style="width:30%;">Relatório<br>
<select name="relatorio" class="form-control" style="width:100%" >
<option value="">Selecione</option>
<option value="CASOS ACOMPANHADOS POR UNIDADE">CASOS ACOMPANHADOS POR UNIDADE</option>
<option value="PACIENTES COM ALTA">PACIENTES COM ALTA</option>
<option value="PACIENTES QUE FORAM A ÓBITO">PACIENTES QUE FORAM A ÓBITO</option>
</select>
</label>
<input type="submit" readonly value="Pesquisar" class="btn btn-primary">
</div>
</form>
<?php
if(isset($_GET["relatorio"])){
$relatorio = $_GET["relatorio"];
if($relatorio == 'CASOS ACOMPANHADOS POR UNIDADE'){
$sql = "select A.CNES, B.NOME_UNIDADE, COUNT(A.ID_PACIENTE) AS TOTAL_PACIENTES FROM VIOLENCIA_CADASTRO A
inner join UNIDADES B
on A.CNES = B.CNES
WHERE A.ID_PACIENTE NOT IN(SELECT C.ID_PACIENTE FROM VIOLENCIA_ACOMPANHAMENTO C)
GROUP BY A.CNES, B.NOME_UNIDADE
ORDER BY B.NOME_UNIDADE";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0) {
?>
<h5 style="font-weight: bold">Estatísticas de Acompanhamento de Casos por Unidade</h5>
<table class="table table-hover table-bordered" id="relatorio">
<tr>
<th>CNES</th>
<th>UNIDADE</th>
<th>TOTAL DE CASOS PARA ACOMPANHAMENTO</th>
<th>TOTAL DE CASOS SEM REGISTRO DE ACOMPANHAMENTO</th>
<th>TOTAL DE CASOS COM ATRASO NO ACOMPANHAMENTO</th>
<th>TOTAL DE CASOS COM ACOMPANHAMENTO EM DIA</th>
<!-- <th style="background-color: red;">Nº DE CASOS<BR>SEM ACOMPANHAMENTO</th>
<th style="background-color: red;">% NÃO ACOMPANHADOS</th> -->
</tr>
<?php
while ($row = mysqli_fetch_array($result)){
foreach($row as $key => $values){
$row[$key]= utf8_encode($values);
}
$sqlultimoacomp = "SELECT
A.ID_PACIENTE,
A.CNES,
MAX(B.ID_ACOMPANHAMENTO) as ID_ACOMPANHAMENTO
FROM VIOLENCIA_CADASTRO A
LEFT JOIN VIOLENCIA_ACOMPANHAMENTO B ON A.ID_PACIENTE = B.ID_PACIENTE
WHERE A.CNES = '".$row["CNES"]."'
GROUP BY A.ID_PACIENTE, A.CNES
order by A.CNES";
$resultultimoacomp = mysqli_query($con, $sqlultimoacomp);
$alta = 0;
$acompanhado = 0;
$obito = 0;
$mudou = 0;
$naolocalizado = 0;
$semacompanhamento = 0;
$acompcomatraso = 0;
while ($rowultimoacomp = mysqli_fetch_array($resultultimoacomp)){
foreach($rowultimoacomp as $key => $values){
$rowultimoacomp[$key]= utf8_encode($values);
}
if($rowultimoacomp["ID_ACOMPANHAMENTO"] != ''){
$sqltipoacomp = "select
ID_ACOMPANHAMENTO,
DATA_ACOMPANHAMENTO,
SITUACAO,
DATEDIFF( curdate() , DATA_ACOMPANHAMENTO) AS DIAS
from VIOLENCIA_ACOMPANHAMENTO
WHERE ID_ACOMPANHAMENTO = ".$r
Sendo assim, o relatório final, deve exibir apenas os registros que estão em andamento das unidades. O meu problema está no seguinte: na primeira linha, da unidade ADIB, possui 161 registros. Caso todos esses registros estivessem com o acompanhamento em dia, deveria continuar 161 nesta coluna, as duas do meio zeradas e a última repetindo o 161. Contudo, ele omite toda essa linha, como se não existisse nenhum dado.
Segue abaixo como está o código:
<?php
include_once './autenticacao.php';
include_once'../../conexao.php';
include_once '../../funcoes.php';
$cnesbusca = $_SESSION["cnes"];
$sqlbusca = "select
CNES,
NOME_UNIDADE
from UNIDADES
where CNES = '".$cnesbusca."'
";
$resultbusca = mysqli_query($con, $sqlbusca);
$rowbusca = mysqli_fetch_array($resultbusca);
$nomeunidade = $rowbusca["NOME_UNIDADE"];
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Acompanhamento das Notificações de Violência</title>
<!-- Bootstrap Core CSS -->
<link href="../../css/bootstrap.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="../../css/modern-business.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="../../font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<style>
table#relatorio{
width: 90%;
margin-top: 1%;
}
table#relatorio th{
background-color: #6495ED;
color: white;
font-size:7.5pt;
}
table#relatorio td{
background-color: white;
color: black;
font-size:7.5pt;
}
</style>
</head>
<body>
<?php
include_once '../../nav-menu2.php';
?>
<!-- Page Content -->
<div class="container" style="width: 85%">
<?php
include_once 'cabecalho.php';
?>
<!-- Content Row -->
<div class="row">
<?php
include_once 'barra-lateral.php';
?>
<!-- Content Column -->
<div class="col-md-9" style="width: 82.5%">
<form class="form-inline" action="relatorios.php" autocomplete="off" method="get">
<div id="form-callcenter">
<label style="width:30%;">Relatório<br>
<select name="relatorio" class="form-control" style="width:100%" >
<option value="">Selecione</option>
<option value="CASOS ACOMPANHADOS POR UNIDADE">CASOS ACOMPANHADOS POR UNIDADE</option>
<option value="PACIENTES COM ALTA">PACIENTES COM ALTA</option>
<option value="PACIENTES QUE FORAM A ÓBITO">PACIENTES QUE FORAM A ÓBITO</option>
</select>
</label>
<input type="submit" readonly value="Pesquisar" class="btn btn-primary">
</div>
</form>
<?php
if(isset($_GET["relatorio"])){
$relatorio = $_GET["relatorio"];
if($relatorio == 'CASOS ACOMPANHADOS POR UNIDADE'){
$sql = "select A.CNES, B.NOME_UNIDADE, COUNT(A.ID_PACIENTE) AS TOTAL_PACIENTES FROM VIOLENCIA_CADASTRO A
inner join UNIDADES B
on A.CNES = B.CNES
WHERE A.ID_PACIENTE NOT IN(SELECT C.ID_PACIENTE FROM VIOLENCIA_ACOMPANHAMENTO C)
GROUP BY A.CNES, B.NOME_UNIDADE
ORDER BY B.NOME_UNIDADE";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) > 0) {
?>
<h5 style="font-weight: bold">Estatísticas de Acompanhamento de Casos por Unidade</h5>
<table class="table table-hover table-bordered" id="relatorio">
<tr>
<th>CNES</th>
<th>UNIDADE</th>
<th>TOTAL DE CASOS PARA ACOMPANHAMENTO</th>
<th>TOTAL DE CASOS SEM REGISTRO DE ACOMPANHAMENTO</th>
<th>TOTAL DE CASOS COM ATRASO NO ACOMPANHAMENTO</th>
<th>TOTAL DE CASOS COM ACOMPANHAMENTO EM DIA</th>
<!-- <th style="background-color: red;">Nº DE CASOS<BR>SEM ACOMPANHAMENTO</th>
<th style="background-color: red;">% NÃO ACOMPANHADOS</th> -->
</tr>
<?php
while ($row = mysqli_fetch_array($result)){
foreach($row as $key => $values){
$row[$key]= utf8_encode($values);
}
$sqlultimoacomp = "SELECT
A.ID_PACIENTE,
A.CNES,
MAX(B.ID_ACOMPANHAMENTO) as ID_ACOMPANHAMENTO
FROM VIOLENCIA_CADASTRO A
LEFT JOIN VIOLENCIA_ACOMPANHAMENTO B ON A.ID_PACIENTE = B.ID_PACIENTE
WHERE A.CNES = '".$row["CNES"]."'
GROUP BY A.ID_PACIENTE, A.CNES
order by A.CNES";
$resultultimoacomp = mysqli_query($con, $sqlultimoacomp);
$alta = 0;
$acompanhado = 0;
$obito = 0;
$mudou = 0;
$naolocalizado = 0;
$semacompanhamento = 0;
$acompcomatraso = 0;
while ($rowultimoacomp = mysqli_fetch_array($resultultimoacomp)){
foreach($rowultimoacomp as $key => $values){
$rowultimoacomp[$key]= utf8_encode($values);
}
if($rowultimoacomp["ID_ACOMPANHAMENTO"] != ''){
$sqltipoacomp = "select
ID_ACOMPANHAMENTO,
DATA_ACOMPANHAMENTO,
SITUACAO,
DATEDIFF( curdate() , DATA_ACOMPANHAMENTO) AS DIAS
from VIOLENCIA_ACOMPANHAMENTO
WHERE ID_ACOMPANHAMENTO = ".$r
Jorge Monteiro
Curtir tópico
+ 0
Responder
Posts
12/01/2023
Jorge Monteiro
Continuação do código:
WHERE ID_ACOMPANHAMENTO = ".$rowultimoacomp["ID_ACOMPANHAMENTO"];
$resulttipoacomp = mysqli_query($con, $sqltipoacomp);
$rowtipoacomp = mysqli_fetch_array($resulttipoacomp);
if($rowtipoacomp["SITUACAO"] == "EM ACOMPANHAMENTO" and $rowtipoacomp["DIAS"] <= 30){
$acompanhado = $acompanhado+1;
}elseif($rowtipoacomp["SITUACAO"] == "EM ACOMPANHAMENTO" and $rowtipoacomp["DIAS"] >= 31){
$acompcomatraso = $acompcomatraso+1;
}elseif($rowtipoacomp["SITUACAO"] == "ALTA"){
$alta = $alta+1;
}elseif($rowtipoacomp["SITUACAO"] == "MUDOU-SE"){
$mudou = $mudou+1;
}elseif($rowtipoacomp["SITUACAO"] == "OBITO"){
$obito = $obito+1;
}elseif($rowtipoacomp["SITUACAO"] == "PACIENTE NÃO LOCALIZADO"){
$naolocalizado = $naolocalizado+1;
}else{
$semacompanhamento = $semacompanhamento+1;
}
}
}
$totalemacompanhamento = $row["TOTAL_PACIENTES"]+$acompcomatraso+$acompanhado;
?>
<tr>
<td><?php echo $row["CNES"]; ?></td>
<td><?php echo $row["NOME_UNIDADE"]; ?></td>
<td><?php echo $totalemacompanhamento; ?></td>
<td><?php echo $row["TOTAL_PACIENTES"]; ?></td>
<td><?php echo $acompcomatraso; ?></td>
<td><?php echo $acompanhado; ?></td>
</tr>
<?php
}
?>
</table>
<?php
}
}
}
?>
WHERE ID_ACOMPANHAMENTO = ".$rowultimoacomp["ID_ACOMPANHAMENTO"];
$resulttipoacomp = mysqli_query($con, $sqltipoacomp);
$rowtipoacomp = mysqli_fetch_array($resulttipoacomp);
if($rowtipoacomp["SITUACAO"] == "EM ACOMPANHAMENTO" and $rowtipoacomp["DIAS"] <= 30){
$acompanhado = $acompanhado+1;
}elseif($rowtipoacomp["SITUACAO"] == "EM ACOMPANHAMENTO" and $rowtipoacomp["DIAS"] >= 31){
$acompcomatraso = $acompcomatraso+1;
}elseif($rowtipoacomp["SITUACAO"] == "ALTA"){
$alta = $alta+1;
}elseif($rowtipoacomp["SITUACAO"] == "MUDOU-SE"){
$mudou = $mudou+1;
}elseif($rowtipoacomp["SITUACAO"] == "OBITO"){
$obito = $obito+1;
}elseif($rowtipoacomp["SITUACAO"] == "PACIENTE NÃO LOCALIZADO"){
$naolocalizado = $naolocalizado+1;
}else{
$semacompanhamento = $semacompanhamento+1;
}
}
}
$totalemacompanhamento = $row["TOTAL_PACIENTES"]+$acompcomatraso+$acompanhado;
?>
<tr>
<td><?php echo $row["CNES"]; ?></td>
<td><?php echo $row["NOME_UNIDADE"]; ?></td>
<td><?php echo $totalemacompanhamento; ?></td>
<td><?php echo $row["TOTAL_PACIENTES"]; ?></td>
<td><?php echo $acompcomatraso; ?></td>
<td><?php echo $acompanhado; ?></td>
</tr>
<?php
}
?>
</table>
<?php
}
}
}
?>
Responder
Clique aqui para fazer login e interagir na Comunidade :)