Logo Hardware.com.br
casas_jr
casas_jr Membro Senior Registrado
158 Mensagens 3 Curtidas

Mostrar os dados de 2 tabelas diferentes, na sessão do usuário logado

#1 Por casas_jr 18/11/2017 - 06:28
Galera,

Estou com uma dúvida que está me matando.. Tenho 2 tabelas que estão relacionadas:

Usuarios (Campos: id, usuario, datacadastro, sexo, etc.......)
Tab_Livros (Campos: id, usuario, livro1)

Quando o usuário faz o login.. ele traz perfeitamente o nome do usuário que está logado, além dos demais dados que contém na Tabela Usuários (data cadastro, sexo.. etc).

Porém, tudo que está na Tab_Livros, não puxa na session desse usuário que está logado.

Segue o código de autenticação:

<?php
$usuario=$_POST['usuario'];
$senha=$_POST['senha'];
$sql = mysqli_query($conn, "SELECT * FROM usuarios WHERE usuario = '$usuario' and senha = '$senha'") or die (mysqli_error());
$row = mysqli_fetch_assoc($sql);
if($row > 0) {
session_start();
$_SESSION[ 'usuario' ] = $row[ 'usuario' ]; //armazenando usuario
$_SESSION[ 'dados_user' ] = $row; //armazenando tudo em forma de array associativo

echo "
Autenticação OK! Você será redirecionado, Aguarde!
";
echo "";
} else {
echo "
Senha ou User invalidos
";
echo "";
}
?>



Segue a pagina index.php

<?php include("classe/conexao.php");

$consulta = "SELECT * FROM usuarios INNER JOIN Tab_Livros ON usuarios.usuario = Tab_Livros.usuario LIKE usuarios.usuario and Tab_Livros.usuario = '".$_GET['usuario']."'";
$con = $mysqli->query($consulta) or die($mysqli->error);

$usuario=$_GET['usuario'];

?>
<?php
session_start();
if((!isset ($_SESSION['usuario']) == true)){
unset($_SESSION['usuario']);
header('location:login.php');
}
?>

Teste de Registros do usuário logado com 2 tabelas


 


Usuário: <?php echo $_SESSION[ 'dados_user' ][ 'usuario' ]; ?>

Registrou-se em: <?php echo $_SESSION[ 'dados_user' ][ 'datacadastro' ]; ?>


Livro (Aqui deve aparecer o dado da Tab_Livros): <?php echo $_SESSION[ 'dados_user' ][ 'livro1' ]; ?>





Help meeeeeeeeeee!! err_what.png
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#2 Por esquiloesper...
19/11/2017 - 22:12
Sua consulta parece estar apenas repetindo o que não funciona.

Experimente fazer dessa maneira:
[code=php]$consulta = "SELECT *
FROM usuarios us
INNER JOIN Tab_Livros tl
ON us.usuario = tl.usuario
WHERE us.usuario = $_GET['usuario']";[/code]
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#4 Por esquiloesper...
22/11/2017 - 01:15
O problema é que você não informa quais são as PKs do seu esquema. Por isso precisei "adivinhar" com base nos poucos dados que você forneceu.

Veja só:
GET['usuario'] traz o Nome ou o Id na tabela Usuários?
Suponho também que Usuário em Tab_livros corresponda ao ID em Usuários, não é?


Como a sugestão anterior não funcionou, posso deduzir que seja o ID. Sendo assim, desta vez tente fazer desta forma:
[code=php]$consulta = "SELECT *
FROM usuarios us
INNER JOIN Tab_Livros tl
ON us.id = tl.usuario
WHERE us.id = $_GET['usuario']";[/code]
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
casas_jr
casas_jr Membro Senior Registrado
158 Mensagens 3 Curtidas
#5 Por casas_jr
22/11/2017 - 19:50
esquiloesperto disse:
O problema é que você não informa quais são as PKs do seu esquema. Por isso precisei "adivinhar" com base nos poucos dados que você forneceu.

Veja só:
GET['usuario'] traz o Nome ou o Id na tabela Usuários?
Suponho também que Usuário em Tab_livros corresponda ao ID em Usuários, não é?


Como a sugestão anterior não funcionou, posso deduzir que seja o ID. Sendo assim, desta vez tente fazer desta forma:
[code=php]$consulta = "SELECT *
FROM usuarios us
INNER JOIN Tab_Livros tl
ON us.id = tl.usuario
WHERE us.id = $_GET['usuario']";[/code]



Obrigado pelo retorno esquilo,

Sabe o que é mais estranho é que diretamente no SQL efetuando a consula, funciona do jeito que eu tinha feito inicialmente e de ambas as formas que você me passou.

Será que o problema não ta no arquivo da autenticação?
Será que na hora de autenticar ele está fazendo a chamada certa? Porque na autenticação eu só chamo a tabela "usuarios" cadastrados e mostra todos os dados na sessão, mas não consigo ver como incluir a "Tab_Livros" nessa chamada, para enfim aparecer os dados na sessão dessa segunda tabela.
O vento do Duende vem de roxo, quando pisca a inconsciência do Javali! cap_feceiro.png:
casas_jr
casas_jr Membro Senior Registrado
158 Mensagens 3 Curtidas
#7 Por casas_jr
24/11/2017 - 03:01
esquiloesperto disse:
Para responder tua pergunta preciso que responda aquelas que fiz. Apresente detalhes do esquema e das globais. Do contrário não rola... Daqui eu não consigo adivinhar.


Uma pergunta idiota: O que são essas PKs que tu citou?

Que esquemas tu precisa saber?
O print do relacionamento das tabelas? err_what.pngerr_what.pngerr_what.png
O vento do Duende vem de roxo, quando pisca a inconsciência do Javali! cap_feceiro.png:
esquiloesperto
esquiloesper... Cyber Highlander Moderador
7.1K Mensagens 2.2K Curtidas
#8 Por esquiloesper...
24/11/2017 - 03:24
Rapaz, vou perguntar diretamente para fazer você mesmo pesquisar sobre estes assuntos:
[LIST=1]
Você quer programar em PHP sem conhecer sobre as variáveis SuperGlobais desta linguagem?
Quer trabalhar com relacionamento entre tabelas sem a definição do que é um "esquema (SQL) de banco de dados"?
O que acha que preciso sobre as PKs? Dica: Quais características elas apresentam mesmo?
[/LIST]
Pesquise estas respostas e entenderá claramente por que "estes detalhes" fazem muita falta.
Só é difícil enquanto estiver oculto! cool.png
Use a pesquisa


rolleyes.png  Navegar é preciso, viver... também.  smile.png
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal