Jump to content


Photo

Relacionar Duas Ou Mais Tabelas


  • Faça o login para participar
10 replies to this topic

#1 xulambs

xulambs

    12 Horas

  • Usuários
  • 162 posts
  • Sexo:Masculino

Posted 19/04/2013, 14:24

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á....

Edição feita por: xulambs, 19/04/2013, 14:26.


#2 dery

dery

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Masculino
  • Localidade:Sumaré-/sp

Posted 19/04/2013, 17:42

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

Attached Files


Edição feita por: dery, 19/04/2013, 17:46.


#3 xulambs

xulambs

    12 Horas

  • Usuários
  • 162 posts
  • Sexo:Masculino

Posted 19/04/2013, 18:57


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



Oi Dery, boa noite.

Eu entendi a lógica do seu código, mas veio uma dúvida.

Nos campos onde digito os dados para ser inseridos, podem ficar juntos ou não.?

#4 dery

dery

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Masculino
  • Localidade:Sumaré-/sp

Posted 22/04/2013, 09:50

Oi Dery, boa noite.

Eu entendi a lógica do seu código, mas veio uma dúvida.

Nos campos onde digito os dados para ser inseridos, podem ficar juntos ou não.?



Bem aí depende de você.
Voce pode criar inputs distintos para cada campo e recupera-los por $_POSTs individuais como os que deixei comentado no código ou inserir tudo em apenas um input.

O problema de não inserí-los separadamente é que terá que obedecer uma ordem rigorosa de inserção de dados como por ex:

<textarea name="endereco">Rua Fulado de Tal; 58; Centro; Campinas; SP; 13.170-000</textarea>

e depois recupera-los atribuindo estas informações a um vetor tipo:

<?php

$vet = explode(';', $_POST['endereco']);

$rua = $vet[0];
$numero = $vet[1];
$bairro = $vet[2];
$cidade = $vet[3];
$estado = $vet[4];
$cep = $vet[5];

?>

Mas acho que esta segunda opção não seria muito viável...

Abraço

Edição feita por: dery, 22/04/2013, 09:55.


#5 xulambs

xulambs

    12 Horas

  • Usuários
  • 162 posts
  • Sexo:Masculino

Posted 22/04/2013, 22:12


Oi Dery, boa noite.

Eu entendi a lógica do seu código, mas veio uma dúvida.

Nos campos onde digito os dados para ser inseridos, podem ficar juntos ou não.?



Bem aí depende de você.
Voce pode criar inputs distintos para cada campo e recupera-los por $_POSTs individuais como os que deixei comentado no código ou inserir tudo em apenas um input.

O problema de não inserí-los separadamente é que terá que obedecer uma ordem rigorosa de inserção de dados como por ex:

<textarea name="endereco">Rua Fulado de Tal; 58; Centro; Campinas; SP; 13.170-000</textarea>

e depois recupera-los atribuindo estas informações a um vetor tipo:

<?php

$vet = explode(';', $_POST['endereco']);

$rua = $vet[0];
$numero = $vet[1];
$bairro = $vet[2];
$cidade = $vet[3];
$estado = $vet[4];
$cep = $vet[5];

?>

Mas acho que esta segunda opção não seria muito viável...

Abraço



Dery, deu tudo certinho, Muito obrigado.

Não sei como colocar como resolvido no fórum.

#6 Sabinalu

Sabinalu
  • Visitantes

Posted 08/07/2015, 14:43

hola a todos alguien puede ayudarme en como relacionar el usuario loqueado con la imagen que a subido tengo una tabla de usuarios y otra de imagenes que fuccionan bien esta en tipo innodb el formulario de subida de imagenes lo tengo en perfil.phppagina privada de usuarios, si suban las imagens bien y el usuario tene que ser loqueado para entrar a su perfil y subir imagens , me pregunta como relaciono las imagenes subidas con el usuario que la subido. estas son mis tablas CREATE TABLE IF NOT EXISTS usuarios usuario_id int4 NOT NULL AUTO_INCREMENT, usuario_nombre varchar15 NOT NULL DEFAULT , usuario_clave varchar32 NOT NULL DEFAULT , usuario_email varchar50 NOT NULL DEFAULT , usuario_freg datetime NOT NULL DEFAULT 0000-00-00 00:00:00, tipo enum2,1 NOT NULL DEFAULT 2, facebook varchar250 NOT NULL, twitter varchar250 NOT NULL, avatar varchar500 NOT NULL, PRIMARY KEY usuario_id ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS datos usuario_id int11 NOT NULL AUTO_INCREMENT, ruta varchar100 NOT NULL, descripcion text, PRIMARY KEY usuario_id ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

#7 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 11724 posts

Posted 14/09/2017, 00:36

Propecia Side Effects In Children cialis online Cialis 10 Rembourse Zithromax Auxiliary Labels Baclofene Mylan Viagra Quel Cas cialis Acheter Du Nizagara En Ligne
Buy Viagra At Walmart 318 cialis Acheter Lasix En France
Prednisone India Pharmacy Clindamycin Cephalexin
Buy Online Propecia Generic <a href=http://cialtobuy.com>buy cialis</a> Cialis Prezzo Del Prodotto

#8 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 11724 posts

Posted 24/09/2017, 18:15

Levitra Moins Cher En Ligne viagra cialis Viagra Prescription Nhs Buy Cheap Celebrex Online

#9 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 11724 posts

Posted 09/10/2017, 17:18

Propecia Truth viagra Viagra Kaufen Ohne Levitra Generique Pas Cher En Ligne
How Much Is Cialis Without Insurance Can I Purchase Pyridium No Physician Approval On Line india 4 pharmacy levitra cheap Medecine Misoprostol Propecia No Script Cialis Absetzen
Acheter Du Cialis Online levitra en ligne canada isotretinoin delivered on saturday Hawaii

#10 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 11724 posts

Posted 27/10/2017, 07:51

Xenical A Petit Prix Overseas Generic Viagra levitra 10 Levitra 40mg Bulk Prices Viagra Prix En Pharmacie En France
Analyse Du Clomid generic viagra Metronidazole Overnight Levitra Generic India
Cialis Trial Packs Express Shipping levitra 40 mg generic Best Levitra Price Order Prednisone From Canada

#11 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 11724 posts

Posted 07/11/2017, 05:42

Kamagra Jelly Francia Amoxicillin Dosage For Dog Viagra Pfizer Internet generic levitra professional Zithromax Good Sinus Infection Cialis Frequenza Assunzione
Prednisone For Dogs For Sale Can You Still Get Accutane From Canada viagra online prescription Viagra 100 Mg




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq