Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Felipe Torres

Consultar em 2 tabelas, e fazer relação entre as 2.

Recommended Posts

Boa tarde galera, tenho 3 tabelas, E estou fazendo um sistema de "RECUPERAR A SENHA" do usuário. Eu tenho que recuperar a senha, após o usuário digitar o E-MAIL ou o LOGIN.

 

Então queria saber se tem com alguem me ajudar com esse SELECT.

 

SELECT * FROM jk_pessoa,  jk_pessoa_login, jk_pessoa_dados WHERE pel_login = '$login' OR ped_email = '$email'  "

 

1º Tabela:

 

nome da tabela: PESSOA_LOGIN

 

Campos:

 

pel_id

pel_pes_id

pel_login

pel_senha

 

2º Tabela:

 

nome da tabela: PESSOA_DADOS

 

Campos:

 

ped_id

ped_tur_id

ped_pes_id

ped_matricula

ped_cpf

ped_telefone

ped_email

 

3º Tabela:

 

nome da tabela: PESSOA

 

Campos:

 

pes_id

pes_pet_id

pes_nome

pes_apelido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe Torres, pelo que notei há um relacionamento entre as Tabelas jk_pessoa_login, jk_pessoa_dados com a Tabela jk_pessoa através dos campos: pel_pes_id e ped_pes_id. Seria isso mesmo. Se sua resposta for sim o que você pode fazer é utilizar o INNER JOIN para resgatar esses. Exemplo:

SELECT * 
FROM 
  jk_pessoa
     INNER JOIN jk_pessoa_login ON (jk_pessoa.pes_id = jk_pessoa_login.pel_pes_id)
     INNER JOIN jk_pessoa_dados ON (jk_pessoa.pes_id = jk_pessoa_dados.ped_pes_id)
WHERE 
  pel_login = '$login' OR 
  ped_email = '$email'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe Torres, pelo que notei há um relacionamento entre as Tabelas jk_pessoa_login, jk_pessoa_dados com a Tabela jk_pessoa através dos campos: pel_pes_id e ped_pes_id. Seria isso mesmo. Se sua resposta for sim o que você pode fazer é utilizar o INNER JOIN para resgatar esses. Exemplo:

SELECT * 
FROM 
  jk_pessoa
     INNER JOIN jk_pessoa_login ON (jk_pessoa.pes_id = jk_pessoa_login.pel_pes_id)
     INNER JOIN jk_pessoa_dados ON (jk_pessoa.pes_id = jk_pessoa_dados.ped_pes_id)
WHERE 
  pel_login = '$login' OR 
  ped_email = '$email'

 

Beleza, eu coloquei, mas ve se tu me ajuda.

 

Vou postar meu código todo aqui.

Mas quando coloco só o LOGIN, ele não puxa o email, sendo que eu trago ele lá em baixo.

 

elseif($acao=="recuperar"){

  $login = $_POST['login'];
  $email = $_POST['email'];

  $sql = "SELECT * 
FROM 
  jk_pessoa
     INNER JOIN jk_pessoa_login ON (jk_pessoa.pes_id = jk_pessoa_login.pel_pes_id)
     INNER JOIN jk_pessoa_dados ON (jk_pessoa.pes_id = jk_pessoa_dados.ped_pes_id)
WHERE 
  pel_login = '$login' OR 
  ped_email = '$email' "; 

  $resultado = mysql_query($sql) or die (mysql_error());



           $sql4 = mysql_fetch_array($resultado);
           $senha = $sql4["pel_senha"];
           $login = $sql4["pel_login"];
    $email = $sql4["ped_email"];
           $nome = $sql4["pes_nome"];



          // enviando e-mail:
          $para = $email;
          $assunto = "Recuperação de Senha";
          $mensagem = "Olá $nome \n\r\n
          Você solicitou a recuperação de senha, pois está é a sua senha e login de acesso\n\n
          Sua senha é: $senha \n 
   Seu login é: $login\n ";


$headers = "MIME-Version: 1.1\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "From: Não responda\r\n"; // remetente
$headers .= "Return-Path: Não responda\r\n"; // return-path


          mail($para,$assunto,$mensagem,$headers) or die ("Erro ao enviar e-mail");




} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe Torres, me deculpe mas não entendi. Seria o caso qdo você digita o LOGIN e manda pesquisar ele não retorna o campo com o E-MAIL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe Torres, me deculpe mas não entendi. Seria o caso qdo você digita o LOGIN e manda pesquisar ele não retorna o campo com o E-MAIL?

 

Se ele digitar o email OU o login, ele retorna a SENHA e o LOGIN.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Feipe Torres, o que você qer é só retornar os dois dados, pq eu fiz uma simulação aqui e deu certo. Segue teste abaixo trazendo só o e-mail e a senha do usuário.

Minhas Tabelas:

Tabela: PESSOA

pes_id - pes_nome - pes_apelido

1 - Weslley - wess

2 - Felipe - felipe

 

Tabela: PESSOA_DADOS

ped_id - ped_pes_id - ped_email

1 - 1 - wess@teste.com.br

2 - 2 - felipe@teste.com.br

 

Tabela: PESSOA_LOGIN

pel_id - pel_pes_id - pel_login - pel_senha

1 - 1 - wess - 123

2 - 2 - felipe - 321

 

Meu SQL:

SELECT
 jk_pessoa_dados.ped_email AS email, jk_pessoa_login.pel_senha AS senha
FROM
 jk_pessoa
   INNER JOIN jk_pessoa_login ON (jk_pessoa.pes_id = jk_pessoa_login.pel_pes_id)
   INNER JOIN jk_pessoa_dados ON (jk_pessoa.pes_id = jk_pessoa_dados.ped_pes_id)
WHERE
 pel_login = 'felipe' OR
 ped_email = 'felipe'

Gerando o resultado:

email - pel_senha

felipe@teste.com.br - 321

 

Veja ai se seria isso mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.