How to show informative message to user and follow flow for BD recording

Asked

Viewed 74 times

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.

  • I deleted my comment because it was outside the scope of your question. I am studying your code to understand what is happening.

  • It seems to me that there is a problem with the structuring of the if/Else blocks. Review this.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.