Insert e Update não funcionam.
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
Curtidas 0
Melhor post
Alex William
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:
Depois, verifique se há algum possivel erro de fluxo.
Espero ter ajudado. :D
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
GOSTEI 1