>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Inserir dados em uma tabela relacionada.


Boa noite,

Estou com uma dúvida de como inserir dados em tabelas relacionadas,
abaixo o meu código:


CREATE TABLE IF NOT EXISTS `endereco` (
`id_endereco` int(11) NOT NULL AUTO_INCREMENT,
`cep` varchar(50) NOT NULL,
`rua` varchar(50) NOT NULL,
`numero` varchar(10) NOT NULL,
`bairro` varchar(50) NOT NULL,
`cidade` varchar(50) NOT NULL,
`uf` char(2) NOT NULL,
PRIMARY KEY (`id_endereco`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


CREATE TABLE IF NOT EXISTS `endereco_fornecedor` (
`id_endereco_fornecedor` int(11) NOT NULL AUTO_INCREMENT,
`endereco` int(11) NOT NULL,
`fornecedor` int(11) NOT NULL,
PRIMARY KEY (`id_endereco_fornecedor`),
KEY `endereco_fornecedor_endereco` (`endereco`),
KEY `endereco_fornecedor_fornecedor` (`fornecedor`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;



CREATE TABLE IF NOT EXISTS `fornecedor` (
`id_fornecedor` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`contato` varchar(50) NOT NULL,
PRIMARY KEY (`id_fornecedor`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;

CREATE TABLE IF NOT EXISTS `telefone` (
`id_telefone` int(11) NOT NULL AUTO_INCREMENT,
`telefone` varchar(50) NOT NULL,
PRIMARY KEY (`id_telefone`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

CREATE TABLE IF NOT EXISTS `telefone_fornecedor` (
`id_telefone_fornecedor` int(11) NOT NULL AUTO_INCREMENT,
`fornecedor` int(11) NOT NULL,
`telefone` int(11) NOT NULL,
PRIMARY KEY (`id_telefone_fornecedor`,`fornecedor`,`telefone`),
KEY `fk_telefone_fornecedor_fornecedor` (`fornecedor`),
KEY `fk_telefone_fornecedor_telefone` (`telefone`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


agora o código PHP:


extract($_POST);
include ("./conexao_db.php");
conectar($server,$user,$senha,$name);

$SQL = "INSERT INTO fornecedor (nome,email,contato)";
$SQL.= " VALUES(.$nome_for.,.$email.,.$contato.)";
$query = mysql_query($SQL) or die("ERRO FORNECEDOR!
".mysql_error());

$SQL = "INSERT INTO telefone (telefone)";
$SQL.= " VALUES(.$telefone.)";
$query = mysql_query($SQL) or die("ERRO TELEFONE
".mysql_error());

$SQL = "INSERT INTO telefone_fornecedor (fornecedor,telefone)";
$SQL.= " VALUES((select LAST_INSERT_ID()),(select LAST_INSERT_ID()))";
$query = mysql_query($SQL) or die("ERRO TELEFONE_FORNECEDOR
".mysql_error());


$SQL = "INSERT INTO endereco(cep,rua,numero,bairro,cidade,uf)";
$SQL.= " VALUES(.$cep.,.$rua.,.$numero.,.$bairro.,.$cidade.,.$uf.)";
$query = mysql_query($SQL) or die("ERRO ENDERECO!
".mysql_error());

$SQL = "INSERT INTO endereco_fornecedor (id_endereco_fornecedor,endereco,fornecedor)";
$SQL.= " VALUES(NULL,(select LAST_INSERT_ID()),(select LAST_INSERT_ID()))";
$query = mysql_query($SQL) or die("ERRO ENDERECO_FORNECEDOR!
".mysql_error());


?>



2 Respostas


Francisco

Você chegou a ver o curso de PHP com MySQL?

Lá eu mostro um exemplo de noticias com autor.

Onde existe um relacionamento entre eles.