Oi galera, boa tarde.
Estou perdendo meus cabelos e não consigo resolver.
Tenho duas tabelas - cliente e endereço, como mostra abaixo com seus respectivos blocos:
cliente
--------
id
nome
---------------
endereco
--------
id
rua
Gostaria de inserir e editar os dados do cliente e endereço relacionando as as duas tabelas.
Agradeço desde já....
Não sei se entendi bem mas se for fazer o cadastro nas 2 tabelas ao mesmo tempo deverá na Tabela cliente ter um campo único sem ser o id, como CPF ou email por ex:
-- Tabelas
CREATE TABLE IF NOT EXISTS cliente (
id int(11) NOT NULL AUTO_INCREMENT,
nome varchar(50) NOT NULL,
email varchar(50) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY email (email)
);
CREATE TABLE IF NOT EXISTS endereco (
id int(11) NOT NULL AUTO_INCREMENT,
cliente int(11) NOT NULL,
endereco varchar(50) NOT NULL,
cidade varchar(50) NOT NULL,
uf char(2) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (cliente) REFERENCES cliente(id)
);
--
<?php
// resgatando os dados
$nome = "Deri Reis"; //$_POST['nome '];
$email = "dery@reis.com"; //$_POST['email '];
$endereco = "Rua teste, 99"; //$_POST['endereco '];
$cidade = "Campinas"; //$_POST['cidade '];
$uf = "SP"; //$_POST['uf '];
//inserindo na tablea cliente
$sql = "INSERT INTO cliente VALUES(NULL ,'$nome', '$email')";
@mysql_query( $sql );
// resgatando o id do cliente cadastrado
$sql = "SELECT id FROM cliente WHERE email = '". $email ."'";
$idCliente = @mysql_fetch_object( @mysql_query( $sql ) )->id;
// inserindo na tabela endereço
$sql = "INSERT INTO endereco VALUES(NULL, $idCliente, '$endereco', '$cidade', '$uf')";
@mysql_query( $sql );
?>
Para visualizar os dados digite no SQL
SELECT * FROM cliente
INNER JOIN endereco ON cliente.id = endereco.cliente
Pronto, as informações foram inseridas nas tabelas de modo relacional.
Att, Dery
Edição feita por: dery, 19/04/2013, 17:46.