Insert e Update não funcionam.

11/08/2021

0

Pessoal é a primeira vez que estou utilizando o mysqli, preciso de ajuda porque o trecho do insert e update começando bem no inicio do código travam a abertura da page, se eu comento esse trecho, o html abre normalmente, inclusive com os campos para preenchimento e tabelinha com os registros já cadastrados. Por favor me ajudem a identificar onde estou errando.



if(isset($_POST["matricula"]) && isset($_POST["dia_etapa"]) && isset($_POST["entrada_etapa"]) && isset($_POST["saida_etapa"]) && isset($_POST["local_etapa"]))
{
	
	if(empty($_POST["matricula"]))
		
		$erro = "Campo matrícula obrigatório";
	
	else 
		if(empty($_POST["dia_etapa"]))
		
		$erro = "Campo dia da realização da etapa obrigatório";
	
	else 
		if(empty($_POST["entrada_etapa"]))
		
		$erro = "Campo horário de entrada obrigatório";
	
	else 
		if(empty($_POST["saida_etapa"]))
		
		$erro = "Campo horário de saída obrigatório";
	
	else 
		if(empty($_POST["local_etapa"]))
		
		$erro = "Campo local da etapa obrigatório";
	
	else
	{
		
		$id = $_POST["id"];
		$matricula = $_POST["matricula"];
		$dia_etapa = $_POST["dia_etapa"];
		$entrada_etapa = $_POST["entrada_etapa"];
		$pausa_etapa = $_POST["pausa_etapa"];
		$saida_etapa = $_POST["saida_etapa"];
		$pagina = $_POST["pagina"];
		$local_etapa = $_POST["local_etapa"];
		
		
		/* Se $id for -1 indica novo registro, senão indica alteração dos dados. */
		if ($id == -1)
		{
			$stmt = $obj_mysqli->prepare("INSERT INTO `etapas_vacinacao` (matricula, dia_etapa, entrada_etapa, pausa_etapa, saida_etapa, pagina, local_etapa) VALUES (?,?,?,?,?,?,?)");
			$stmt->bind_param('sssssss', $matricula, $dia_etapa, $entrada_etapa, $pausa_etapa, $saida_etapa, $pagina, $local_etapa);
		
			if(!$stmt->execute())
			{
				$erro = $stmt->error;
			}
			else
			{
				header("Location:cadastro.php");
				$sucesso = "Dados cadastrados com sucesso!";
				exit;
				
			}
		}
		//se não, vamos realizar a alteraçao dos dados,
		else 
			if(is_numeric($id) && ($id >= 1))
			{
				$stmt = obj_mysqli->prepare("UPDATE etapas_vacinacao SET matricula=?, dia_etapa=?, entrada_etapa=?, pausa_etapa=?, saida_etapa=?, pagina=?, local_etapa=?, WHERE id = ?");
				$stmt->bind_param('sssssssi', $matricula, $dia_etapa, $entrada_etapa, $pausa_etapa, $saida_etapa, $pagina, $local_etapa, $id);
				
				if(!$stmt->execute())
				{
					$erro = $stmt->error;
				}
				else
				{
					header("Location:cadastro.php");
					$sucesso = "Dados atualizados com sucesso!";
					exit;
					
				}
			}
		//retorna um erro
		else
		{
			$erro = "Número inválido";
		}
	}
} else 
	if(isset($_GET["id"]) && is_numeric($_GET["id"]))
	{
		//pegamos aqui o id passado...
		$id = (int)$_GET["id"];
		
		if(isset($_GET["del"]))
		{
			$stmt = $obj_mysqli->prepare("DELETE FROM etapas_vacinacao WHERE id = ?");
			$stmt->bind_param('i', $id);
			$stmt->execute();
			
			header("Location:cadastro.php");
			$sucesso = "Registro excluído com sucesso!";
			exit;
			
		}
		else
		{
			$stmt = $obj_mysqli->prepare("SELECT * FROM etapas_vacinacao WHERE id = ?");
			$stmt->bind_param('i', $id);
			$stmt->execute();
			
			$result = $stmt->get_result();
			$aux_query = $result->fetch_assoc();
			
			//onde aqui, nós atribuímos às variáveis.
			$matricula = $aux_query["matricula"];
			$dia_etapa = $aux_query["dia_etapa"];
			$entrada_etapa = $aux_query["entrada_etapa"];
			$pausa_etapa = $aux_query["pausa_etapa"];
			$saida_etapa = $aux_query["saida_etapa"];
			$pagina = $aux_query["pagina"];
			$local_etapa = $aux_query["local_etapa"];
	 
			$stmt->close();
		}
	}

Fábio Silva

Fábio Silva

Responder

Post mais votado

20/08/2021

Boa tarde, amigo. Tudo bem?

primeiramente, o interessante seria ler este post:

https://pt.stackoverflow.com/questions/25184/não-usar-chaves-em-if-no-php-pode-gerar-problemas

Para blocos de código, deve-se utilizar chaves.

Então, deixe seu código assim:

<?php
<?php

if(isset($_POST["matricula"]) && isset($_POST["dia_etapa"]) && isset($_POST["entrada_etapa"]) && isset($_POST["saida_etapa"]) && isset($_POST["local_etapa"]))
{
     
    if(empty($_POST["matricula"])){
        $erro = "Campo matrícula obrigatório";
    }else{
        if(empty($_POST["dia_etapa"])) {
            $erro = "Campo dia da realização da etapa obrigatório";
        }else{
            if(empty($_POST["entrada_etapa"])){
                $erro = "Campo horário de entrada obrigatório";
            }else{
                if(empty($_POST["saida_etapa"])){
                    $erro = "Campo horário de saída obrigatório";
                }else{
                    if(empty($_POST["local_etapa"])){
                        $erro = "Campo local da etapa obrigatório";
                    }else{
         
                        $id = $_POST["id"];
                        $matricula = $_POST["matricula"];
                        $dia_etapa = $_POST["dia_etapa"];
                        $entrada_etapa = $_POST["entrada_etapa"];
                        $pausa_etapa = $_POST["pausa_etapa"];
                        $saida_etapa = $_POST["saida_etapa"];
                        $pagina = $_POST["pagina"];
                        $local_etapa = $_POST["local_etapa"];
         
         
                        /* Se $id for -1 indica novo registro, senão indica alteração dos dados. */
                        if ($id == -1) {
                            $stmt = $obj_mysqli->prepare("INSERT INTO `etapas_vacinacao` (matricula, dia_etapa, entrada_etapa, pausa_etapa, saida_etapa, pagina, local_etapa) VALUES (?,?,?,?,?,?,?)");
                            $stmt->bind_param('sssssss', $matricula, $dia_etapa, $entrada_etapa, $pausa_etapa, $saida_etapa, $pagina, $local_etapa);
                        
                            if(!$stmt->execute()) {
                                $erro = $stmt->error;
                            }else{
                                header("Location:cadastro.php");
                                $sucesso = "Dados cadastrados com sucesso!";
                                exit;
                                
                            }
                        }else{ //se não, vamos realizar a alteraçao dos dados,
                            if(is_numeric($id) && ($id >= 1)) {
                                $stmt = $obj_mysqli->prepare("UPDATE etapas_vacinacao SET matricula=?, dia_etapa=?, entrada_etapa=?, pausa_etapa=?, saida_etapa=?, pagina=?, local_etapa=?, WHERE id = ?");
                                $stmt->bind_param('sssssssi', $matricula, $dia_etapa, $entrada_etapa, $pausa_etapa, $saida_etapa, $pagina, $local_etapa, $id);
                                
                                if(!$stmt->execute()) {
                                    $erro = $stmt->error;
                                } else {
                                    header("Location:cadastro.php");
                                    $sucesso = "Dados atualizados com sucesso!";
                                    exit;
                                    
                                }
                            }else {
                                $erro = "Número inválido";
                            }
                        }
                    }
                }
            }
        }
    }
} else{
    if(isset($_GET["id"]) && is_numeric($_GET["id"])) {
        //pegamos aqui o id passado...
        $id = (int)$_GET["id"];
         
        if(isset($_GET["del"])) {
            $stmt = $obj_mysqli->prepare("DELETE FROM etapas_vacinacao WHERE id = ?");
            $stmt->bind_param('i', $id);
            $stmt->execute();
             
            header("Location:cadastro.php");
            $sucesso = "Registro excluído com sucesso!";
            exit;
             
        } else {
            $stmt = $obj_mysqli->prepare("SELECT * FROM etapas_vacinacao WHERE id = ?");
            $stmt->bind_param('i', $id);
            $stmt->execute();
             
            $result = $stmt->get_result();
            $aux_query = $result->fetch_assoc();
             
            //onde aqui, nós atribuímos às variáveis.
            $matricula = $aux_query["matricula"];
            $dia_etapa = $aux_query["dia_etapa"];
            $entrada_etapa = $aux_query["entrada_etapa"];
            $pausa_etapa = $aux_query["pausa_etapa"];
            $saida_etapa = $aux_query["saida_etapa"];
            $pagina = $aux_query["pagina"];
            $local_etapa = $aux_query["local_etapa"];
      
            $stmt->close();
        }
    }
}


Depois, verifique se há algum possivel erro de fluxo.

Espero ter ajudado. :D

Alex William

Alex William
Responder

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

Aceitar