Ir para conteúdo
Fórum Script Brasil

alexclima

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Posts postados por alexclima

  1. Olá Amigos, em Mysql e PHP mas estou me sforçando para aprender, nunca programei então estou levando um couro danado. Bom é o seguinte possuo duas tabelas relacionadas e preciso incluira dados tanto em uma quanto na outra quando faço um cadastro de clientes o que acontece é que meu scrip de php so faz a primeira query a segunda ele não faz. Estou enviando as tabelas:

    -- -----------------------------------------------------

    -- Table `estudo`.`Pessoa`

    -- -----------------------------------------------------

    CREATE TABLE IF NOT EXISTS `estudo`.`Pessoa` (

    `idPessoa` INT NOT NULL AUTO_INCREMENT ,

    `nome_pessoa` VARCHAR(45) NULL ,

    `senha_pessoa` VARCHAR(45) NULL ,

    `cpf_pessoa` VARCHAR(45) NULL ,

    `rg_pessoa` VARCHAR(45) NULL ,

    PRIMARY KEY (`idPessoa`) )

    ENGINE = InnoDB;

    -- -----------------------------------------------------

    -- Table `estudo`.`Certificados`

    -- -----------------------------------------------------

    CREATE TABLE IF NOT EXISTS `estudo`.`Certificados` (

    `idCertificados` INT NOT NULL AUTO_INCREMENT ,

    `nome_certificado` VARCHAR(45) NULL ,

    `lugar_certificado` VARCHAR(45) NULL ,

    `Pessoa_idPessoa` INT NOT NULL ,

    PRIMARY KEY (`idCertificados`) ,

    INDEX `fk_Certificados_Pessoa` (`Pessoa_idPessoa` ASC) ,

    CONSTRAINT `fk_Certificados_Pessoa`

    FOREIGN KEY (`Pessoa_idPessoa` )

    REFERENCES `estudo`.`Pessoa` (`idPessoa` )

    ON DELETE NO ACTION

    ON UPDATE NO ACTION)

    ENGINE = InnoDB;

    e aqui vai o codigo:

    <?php
        $operacao = $_POST["operacao"];
    
        
        if ($operacao=="incluir")
        {
            $nome = $_POST["nome"];
            $senha = $_POST["senha"];
            $cpf = $_POST["cpf"];
            $rg = $_POST["rg"];
            $dia = $_POST["dia"];
            $mes = $_POST["mes"];
            $ano = $_POST["ano"];
            $nascimento = $ano . "-". $mes . "-" . $dia;
            if($nascimento==$ano ."-02-31"){
                echo "Data não existe!";
                echo "<p align=\"center\"><a href=\"pagina_inicial.php\">Voltar</a></p>";
                exit;
                }
            $certificado = $_POST["certificado"];
            $local = $_POST["local"];
        
            $conexao = mysqli_connect ("localhost", "admin", "admin","estudo");
            if (!$conexao) {
                printf("Não consegui conectar ao localhost. Error: %s\n", mysqli_connect_error());
                exit();
            }
    
            mysqli_autocommit($conexao, FALSE);
            $resultado1 = mysqli_query ($conexao,"INSERT INTO pessoa (nome_pessoa, senha_pessoa, cpf_pessoa, rg_pessoa, Dt_Nascimento_pessoa) VALUES ('$nome','$senha',$cpf,$rg,'$nascimento')");
            
            mysqli_commit($conexao); 
            $id =  mysqli_insert_id($conexao);
            $resultado2 = mysqli_query ($conexao,"INSERT INTO certificados (nome_certificado, lugar_certificado, Pessoa_idPessoa) VALUES ('$certificado','$local',$id)"); 
            mysqli_autocommit($conexao, true);
            
            echo "Cliente incluído com sucesso!";
            echo "<p align=\"center\"><a href=\"pagina_inicial.php\">Voltar</a></p>";
        }
        mysqli_close($conexao);
    ?>

    Desde já agradeço a atenção e ajuda.

  2. Oi, 'alexclima'

    Este é um exemplo em SQL de como funciona este tipo de insert.

    SET AUTOCOMMIT=0;
    START TRANSACTION;
    INSERT INTO pessoa(nome_pessoa, senha_pessoa, cpf_pessoa, rg_pessoa)
    VALUES('teste1', 'senha', '123', '456');
    INSERT INTO Certificados(nome_certificado, lugar_certificado, idPessoa)
    values('cert1', 'rj', (select LAST_INSERT_ID()));
    COMMIT;
    SET AUTOCOMMIT=1;

    Obrigado Denis vou tentar descobrir como colocar isso em PHP se conseguir coloco o codigo aqui para ajudar aos proximos.

  3. Olá pessoal, sou novato no forum e tambem em mysql.

    Tenho a seguinte duvida: Como faço para inserir informações de um formulario em duas tabelas relacionadas?

    Oi, 'alexclima'

    São dois inserts distintos. Primeiro insira os dados na tabela pai (Pessoa), depois insira os dados na tabela filha (Certificados).

    Olá Denys, bom são dois inserts destintos mas como fazer para que o segundo insert na tabela filho, insira os dados usando o mesmo id da tabela pai?

    coloquei aqui meu codigo o segundo insert não adiciona os dados na outra tabela:

    <?php

    $operacao = $_POST["operacao"];

    include "conecta_mysql.inc";

    if ($operacao==incluir")

    {

    $nome = $_POST["nome];

    $senha = $_POST["senha"];

    $cpf = $_POST["cpf"];

    $rg = $_POST["rg"];

    $dia = $_POST["dia"];

    $mes = $_POST["mes"];

    $ano = $_POST["ano"];

    $nascimento = $ano . "-". $mes . "-" . $dia;

    if($nascimento==$ano ."-02-31"){

    echo "Data não existe!";

    echo "<p align=\"center\"><a href=\"pagina_inicial.php\">Voltar</a></p>";

    exit;

    }

    $certificado = $_POST["certificado"];

    $local = $_POST["local"];

    $sql = "INSERT INTO pessoa (nome_pessoa, senha_pessoa, cpf_pessoa, rg_pessoa, Dt_Nascimento_pessoa) VALUES";

    $sql .= "('$nome','$senha',$cpf,$rg,'$nascimento')";

    $sql .= "INSERT INTO certificados (nome_certificado, lugar_certificado) VALUES";

    $sql .= "(LAST_INSERT_ID(), '$certificado','$local')";

    $resultado = mysql_query ($sql);

    echo "Cliente incluído com sucesso!";

    echo "<p align=\"center\"><a href=\"pagina_inicial.php\">Voltar</a></p>";

    }

    mysql_close($conexao);

    ?>

  4. Olá pessoal, sou novato no forum e tambem em mysql.

    Tenho a seguinte duvida: Como faço para inserir informações de um formulario em duas tabelas relacionadas?

    Minhas tabelas de estudo são estas:

    -- -----------------------------------------------------

    -- Table `estudo`.`Pessoa`

    -- -----------------------------------------------------

    `idPessoa` INT NOT NULL AUTO_INCREMENT ,

    `nome_pessoa` VARCHAR(45) NULL ,

    `senha_pessoa` VARCHAR(45) NULL ,

    `cpf_pessoa` VARCHAR(45) NULL ,

    `rg_pessoa` VARCHAR(45) NULL ,

    PRIMARY KEY (`idPessoa`) )

    -- -----------------------------------------------------

    -- Table `estudo`.`Certificados`

    -- -----------------------------------------------------

    `idCertificados` INT NOT NULL AUTO_INCREMENT ,

    `nome_certificado` VARCHAR(45) NULL ,

    `lugar_certificado` VARCHAR(45) NULL ,

    `Pessoa_idPessoa` INT NOT NULL ,

    PRIMARY KEY (`idCertificados`) ,

    INDEX `fk_Certificados_Pessoa` (`Pessoa_idPessoa` ASC) ,

    CONSTRAINT `fk_Certificados_Pessoa`

    FOREIGN KEY (`Pessoa_idPessoa` )

    REFERENCES `estudo`.`Pessoa` (`idPessoa` )

    ON DELETE NO ACTION

    ON UPDATE NO ACTION)

×
×
  • Criar Novo...