Olá. Como exibir as preferências do usuário logado? Em muito sites, ao logarmos, recebemos mensagens do tipo "Bem vindo, fulano. Veja novidades a respeito de..." e a seguir assuntos do seu interesse. Veremos agora uma forma bem fácil de fazer isso usando sessões ("sessions") em PHP.
O 1º passo é criar uma tabela onde vc irá relacionar os ids dos usuários e das categorias (neste caso, chamei a tabela de preferencias):
O 1º passo é criar uma tabela onde vc irá relacionar os ids dos usuários e das categorias (neste caso, chamei a tabela de preferencias):
Agora, na página de login, certifique-se de que o id do
usuário logado será armazenado numa variável de sessão. Veja exemplo abaixo:
<?php
<?php
session_start();
// aqui a
conexão
//Pega as informações do form
$senha = $_POST["senha"];
$email = $_POST["email"];
//consulta ao banco de dados
$sql = mysqli_query($conexao, "SELECT id, nome FROM usuarios WHERE email = '$email' AND senha = '$senha'");
$bd = mysqli_fetch_assoc($sql);
// se houver registros, salvamos os dados em variaveis de sessao
if (!empty($bd)) {
$_SESSION["nome"] = $bd["nome"];
$_SESSION["id"] = $bd["id"];
header('location:index.php');
$sql = mysqli_query($conexao, "SELECT id, nome FROM usuarios WHERE email = '$email' AND senha = '$senha'");
$bd = mysqli_fetch_assoc($sql);
// se houver registros, salvamos os dados em variaveis de sessao
if (!empty($bd)) {
$_SESSION["nome"] = $bd["nome"];
$_SESSION["id"] = $bd["id"];
header('location:index.php');
}
//Se não ... reconduz o user para a pagina de login
else{
header('location:login.php');
}
?>
Na página onde o usuário irá se for logado corretamente (em
nosso caso, a index.php), insira uma consulta SQL relacionando as 3 tabelas:
<?php
session_start();
// aqui a
conexão
echo "Bem vindo,
".$_SESSION["nome"];
$usuariologado=$_SESSION["id"];
$sql =
mysqli_query($conexao, "select categ from usuarios
join
preferencias
on
usuarios.id=preferencias.usuario
join categorias
on categorias.id=preferencias.categ
and
usuarios.id='$usuariologado'");
// verificamos se foram localizadas preferencias
}
// verificamos se foram localizadas preferencias
if(mysqli_num_rows($sql)
> 0) {
echo "<p>veja as novidades sobre<p>";}
//
agora usaremos um loop while para recuperarmos todas as preferencias
// caso existam varias
while ($bd = mysqli_fetch_assoc($sql)){
// caso existam varias
while ($bd = mysqli_fetch_assoc($sql)){
echo $bd["categ"]."<br>";
}
?>
E é isso; já deverá estar tudo ok. Caso queira ver mais informações sobre relacionamentos em bancos de dados, confira aqui.