Ir ao conteúdo

PHP armazenar numa variavel um valor de uma coluna de um banco de dados(PHP e MySQL)


Ir à solução Resolvido por DiF,

Posts recomendados

Postado

Então, eu gostaria de pegar o valor de uma coluna em especifico do banco de dados, mas, não todos os registros, um unico, no caso eu pensei em usar:

$ban = ("select status from tabela where codigo = '{$codigo}'");
$baned = $data['status'];

if($baned == 'Banido') {
    header('Location: login.php');
    exit();
}

mas não sei como atribuir o valor da coluna status selecionada para a variavel, no caso, seria uma string que está armazenada, sendo possivel ter nela, dois unicos valores: Banido e Ativo, se puderem me ajudar, agradeço.

  • Moderador
  • Solução
Postado

@Ragnarbrody É mais ou menos quase isso que você fez.

 

Assumindo que o "codigo" é o campo de chave primária de ID.

 

Basicamente você primeiro precisa receber o valor ID do usuário. Isso você pega ao fazer o login, onde você armazena em uma variável de sessão.

 

Então ficaria mais ou menos assim:

 

//Inicia a session
session_start();

//recupera o código de usuário armazenado na session
$codigo = $_SESSION["codigo"];

//faz a consulta no banco de dados
$consulta = mysqli_query($conexao, "SELECT status FROM tabela WHERE codigo = $codigo");

//retorna o dado
$usuario = mysqli_fetch_object($consulta);

//atribui o valor do campo da tabela na variável. Era o que você queria
$status = $usuario->status;

//Testa se o VARCHAR é a palavra Banido
if($status == "Banido"):
   header('Location: login.php');
   exit();
endif;

 

Você também pode aplicar as regras de normalização no banco de dados e criar duas tabelas. por exemplo:

Status contendo os campos ID chave primária, status Varchar com os registros  Ativo e Banido.

Na tabela de usuários, você cria um campo chamado status_id  onde você vai receber por meio de chave estrangeira, o valor do campo ID chave primária da tabela status.

Nesse caso, vai fazer um relacionamento de 1:N  onde a consulta vai ser assim:

SELECT Status.status FROM usuario 
INNER JOIN status ON Status.id = usuario.status_id
WHERE codigo = $codigo

 

Tem ainda outra forma que é definir o campo status na tabela usuario, como tipo TINYINT. onde  zero é um valor e 1  é outro valor. As veze no php é mais fácil comparar números do que strings.

  • Obrigado 2
Postado

@DiF Muito obrigado cara, de verdade, só tava faltando isso pras verificações de segurança de login e cadastro no meu site, to iniciando ainda nesse mundo, é bom poder contar com uma ajudinha.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!