0
I am having a difficulty that I am not able to solve, before registering an information in my BD
I do a check to see if what the user is trying to do is allowed, in my case a given contract needs to follow some mandatory stages registered and when the user tries to record a phase that is not mandatory I need to display a message to it, not preventing the script
follow the recording flow.
I can even show the message saying that the phase that he is trying to record does not match the mandatory phase, but then I am having trouble, so I made the script is giving a message of REGISTRO INSERIDO COM SUCESSO
without displaying the warning message.
What I did was this:
if ($_POST["Operacao"] == 'Inserir') {
// FORMATANDO CAMPOS DATA PARA INSERÇÃO
$Data = parseDate($_POST["dData"], "Y-m-d");
// REGISTRO DO LOG
$dataAgora = date('d/m/Y');
$hora = date("H:i:s");
$partes = explode("/", $dataAgora);
$dia = $partes[0];
$mes = $partes[1];
$ano = $partes[2];
// COMPONDO O LOG
$Log = $_SESSION['u_login']."_".$dia.$mes.$ano."_".$hora;
$IdContrato = $_POST["IdContrato"];
// COMPARANDO A FASE DO BD COM O DO FORMULÁRIO
$BuscaRegistro = "SELECT IdTipoFase FROM `gerFaseObrigatoria` WHERE IdContrato = '$IdContrato' AND Ordem = 1 ORDER BY IdTipoFase DESC LIMIT 1 ";
$Resultado = mysqli_query($conn, $BuscaRegistro) or trigger_error("A seleção falhou - Erro: " . mysqli_error($conn), E_USER_ERROR);
$LinhasTipoFase = mysqli_num_rows($Resultado);
if ($LinhasTipoFase > 0) {
while ($row = mysqli_fetch_assoc($Resultado)) {
// FASE OBRIGATÓRIA CADASTRADA
$row['IdTipoFase'];
// BUSCANDO NOME DA FASE OBRIGATÓRIA
$BuscaFase = "SELECT Nome FROM `gerTipoFase` WHERE IdTipoFase = '".$row['IdTipoFase']."'";
$rowTipoFase = mysqli_query($conn, $BuscaFase) or trigger_error("A seleção falhou - Erro: " . mysqli_error($conn), E_USER_ERROR);
while($rowFase = mysqli_fetch_assoc($rowTipoFase)) {
// NOME DA FASE OBRIGATÓRIA
$NomeFase = $rowFase['Nome'];
}
// VERIFICANDO SE AS FASES INFORMADAS SÃO DIFERENTES PARA EXIBIR A MENSAGEM
if ($row['IdTipoFase'] != $_POST["IdTipoFase"]) {
$aretorno["msg"] = "Atenção, esse contrato possui Fase(s) Obrigatória: " . $NomeFase;
$aretorno["status"] = "ERRO";
// } else {
// GRAVANDO AS INFORMAÇÕES NO BANCO DE DADOS
$sql = "INSERT INTO gerFaseContrato ( IdContrato, Descricao, IdTipoFase, Data, Hora, Log ) VALUES ( ?, ?, ?, ?, ?, ? )";
if($stmt = $conn->prepare($sql) ){
$stmt->bind_param(
"ssssss",
// RESGATE DAS VARIÁVEIS
$_POST["IdContrato"],
$_POST["sDescricao"],
$_POST["IdTipoFase"],
$Data,
$_POST["dHora"],
$Log
);
// DESLIGA O AUTO COMMIT
// $conn->autocommit(false);
// INSERINDO REGISTRO NO BD
if ($stmt->execute()) {
$aretorno["msg"] = "Registro inserido com sucesso.";
$aretorno["par"] = $_POST["IdContrato"];
} else {
$aretorno["msg"] = "Ocorreu um erro na inclusão dos dados:". $stmt->error ." Verifique";
$aretorno["status"] = "ERRO";
}
} else {
$aretorno["msg"] = "Ocorreu um erro na preparação dos dados: " . $stmt->error . ". Verifique.";
$aretorno["status"] = "ERRO";
}
}
}
}
}
Hello @Diego, I want to show the message and the flow continue, if Else is enabled will be a condition.
– adventistapr
I deleted my comment because it was outside the scope of your question. I am studying your code to understand what is happening.
– Diego
It seems to me that there is a problem with the structuring of the if/Else blocks. Review this.
– Everton da Rosa