Ir ao conteúdo
  • Cadastre-se

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

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.

Link para o comentário
Compartilhar em outros sites

  • Moderador
  • Solução

@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
Link para o comentário
Compartilhar em outros sites

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!