Erro Exibição de Dados

12/01/2023

0

PHP

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
Jorge Monteiro

Jorge Monteiro

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

}


}
}


?>
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar