Ir para conteúdo
Fórum Script Brasil

vini_agrof

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre vini_agrof

vini_agrof's Achievements

0

Reputação

  1. Bom dia à todos, Estou tentando desenvolver um sistema de agendamentos de horários, há algumas semanas tento resolver um problema de relação de tabela. Tenho duas principais tabelas, AGENDAMENTOS e CLIENTE, meu objetivo é identificar o agendamento do cliente através do login, não sendo necessário o mesmo ter que digitar o nome para um agendamento. Os dados de inserção são processados por meio de um formulário. Estou tentando relacionar o cliente_id da tabela de CLIENTE para a tabela de AGENDAMENTOS. Segue os códigos para melhor entendimento. CREATE TABLE IF NOT EXISTS `u748203187_agenda`.`cliente` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `nome` VARCHAR(45) NULL DEFAULT NULL, `login` VARCHAR(45) NULL DEFAULT NULL, `senha` VARCHAR(45) NULL DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE = InnoDB AUTO_INCREMENT = 4 DEFAULT CHARACTER SET = latin1 CREATE TABLE IF NOT EXISTS `u748203187_agenda`.`agendamentos` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `nome` VARCHAR(220) NULL DEFAULT NULL, `telefone` VARCHAR(45) NULL DEFAULT NULL, `servicos` VARCHAR(220) NULL DEFAULT NULL, `data` DATETIME NULL DEFAULT NULL, `cliente_id` INT(11) UNSIGNED NULL DEFAULT NULL, PRIMARY KEY (`id`), INDEX `fk_agendamentos_cliente_idx` (`cliente_id` ASC), CONSTRAINT `fk_agendamentos_cliente` FOREIGN KEY (`cliente_id`) REFERENCES `u748203187_agenda`.`cliente` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 9 DEFAULT CHARACTER SET = latin1 Quando tento definir o cliente_id como not null retorna erro 1452 - Cannot add or update a child row: a foreign key constraint fails. index.php: <?php session_start(); ?> <!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"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <link rel="stylesheet" type="text/css" href="css/bootstrap-datetimepicker.min.css"> <title>Sistema - Agendamento</title> <body> <div class="container-fluid"> <div class="jumbotron"> <h1 class="text-center">Agendamento</h1><br> </div><br> <form class="form-horizontal" action="processa.php" method="POST"> <div class="col-sm-3 col-sm-offset-3"> <label>Nome</label> <input class="form-control" type="text" name="nome" placeholder="Digite seu nome" required> </div> <div class="col-sm-3"> <label>Telefone</label> <input class="form-control" type="text" name="telefone" placeholder="Digite seu telefone" required> </div> <div class="col-sm-6 col-sm-offset-3"> <label>Serviços</label> <select name="servicos" class="form-control"> <option value="" selected=>Selecione um serviço</option> <option>Teste</option> <option>Teste</option> <option>Teste</option> <option>Teste</option> <option>Teste</option> </select> </div> <div class="col-sm-6 col-sm-offset-3"> <label>Data e hora</label> <div class="input-group date data_formato" data-date-format="dd/mm/yyyy HH:ii:ss"> <input class="form-control" type="text" name="data" placeholder="Data do serviço"> <span class="input-group-addon"> <span class="glyphicon glyphicon-th"></span> </span> </div> </div> <div class="col-sm-offset-3 col-sm-6"><br> <button type="submit" class="btn btn-success">Agendar</button> <a class="btn btn-primary btn_carrega_conteudo" href='#' id="pagina">Ver agendamentos</a><br><br> <?php if(isset($_SESSION['msg'])){ echo $_SESSION['msg']; unset($_SESSION['msg']); } ?> </div> </form> <div class="col-sm-6 col-sm-offset-3" id="div_conteudo"><!-- div onde será exibido o conteúdo--> <img id="loader" src="loader.gif" style="display:none;margin: 0 auto;"> </div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> <script src="js/bootstrap-datetimepicker.min.js"></script> <script src="js/locales/bootstrap-datetimepicker.pt-BR.js"></script> <script type="text/javascript"> $('.data_formato').datetimepicker({ weeKStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, showMeridian: 1, language: "pt-BR", startDate: '-0d' }); $(document).ready(function(){// Ao carregar a página faça o conteudo abaixo $('.btn_carrega_conteudo').click(function(){// Ao clicar no elemento que contenha a classe .btn_carrega_conteudo faça... var carrega_url = this.id; //Carregar url pegando os dados pelo ID carrega_url = carrega_url+'_listar.php'; //Carregar a url e o conteudo da página $.ajax({ //Carregar a função ajax embutida no jQuery url: carrega_url, //Variável DATA armazena o conteúdo da requisição success: function(data){//Caso a requisição seja completada com sucesso faça... $('#div_conteudo').html(data);// Incluir o conteúdo dentro da DIV }, beforeSend: function(){//Antes do envio do cabeçalho faça... $('#loader').css({display:"block"});//carregar a imagem de load }, complete: function(){//Após o envio do cabeçalho faça... $('#loader').css({display:"none"});//esconder a imagem de load } }); }); }); </script> </body> </html> processa.php: <?php session_start(); //Incluir a conexão com o BD include_once("conexao.php"); //Receber os dados do formulário $data = $_REQUEST['data']; $servicos = $_REQUEST['servicos']; $nome = $_REQUEST['nome']; $telefone = $_REQUEST['telefone']; //Converter a data e hora para o formato do BD. $data = explode(" ", $data); list($date, $hora) = $data; $data_sem_barra = array_reverse(explode("/", $date)); $data_sem_barra = implode("-", $data_sem_barra); $data_sem_barra = $data_sem_barra . " " . $hora; //Validação dos campos if(empty($_POST['nome']) || empty($_POST['data']) || empty($_POST['servicos'])){ $_SESSION['msg'] = "<div class='alert alert-warning'>Preencha os campos corretamente</div>"; header("Location: index.php"); }else{ //Salvar no BD $result_data = "INSERT INTO agendamentos(servicos, data, nome, telefone) VALUES ('$servicos','$data_sem_barra','$nome','$telefone')"; $resultado_data = mysqli_query($conn, $result_data); //Verificar se salvou no banco de dados através do "mysqli_insert_id" que verifica se existe o ID do ultimo dado inserido if(mysqli_insert_id($conn)){ $_SESSION['msg'] = "<div class='alert alert-success'>Agendamento efetuado com sucesso</div>"; header("Location: index.php"); }else{ $_SESSION['msg'] = "<div class='alert alert-danger'>Erro ao efetuar o agendamento</div>"; header("Location: index.php"); } } ?> conexao.php: <?php $servidor = "localhost"; $usuario = "u748203187_agenda"; $senha = ""; $dbname = "u748203187_agenda"; $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); ?>
×
×
  • Criar Novo...