Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Geam

[Resolvido] Identificar nivel

Recommended Posts

Galera como faço para identificar os nivels do usuario, pois no banco o nivel do autor é identificado por numero inteiro:

 

3- admin

2- gerente

3- consultor

 

fiz a funçao abaixo até funciona mais ele coloca todos como consultor sendo que cada um dos resultados do while é diferente;

 

<?php

//Identifica o nivel de acordo com o número cadastrado

$id_nivel = $row_usuarios['nivel_autor'];

 

if($id_nivel='3'){

$nivel = "Administrador";

}

if($id_nivel='2'){

$nivel = "Gerente";

}

if($id_nivel='1'){

$nivel = "Consultor";

}

 

echo $nivel;

 

?>

ele está resultando apenas : consultor

sendo que o certo seria para os tres registros que esta cadastrado, um sendo consultor, outro gerente e um admin; help

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que o que você esta fazendo não é comparação e sim atribuindo os valores

 

= atribui valor

== ou === faz comparação

 

ai ele esta lendo apenas o ultimo valor setado, o correto seria:

 

<?php
//Identifica o nivel de acordo com o número cadastrado
$id_nivel = $row_usuarios['nivel_autor']; 

if($id_nivel==3){
$nivel = "Administrador";
}
if($id_nivel==2){
$nivel = "Gerente";
}
if($id_nivel==1){
$nivel = "Consultor";
}

echo $nivel;

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que o que você esta fazendo não é comparação e sim atribuindo os valores

 

= atribui valor

== ou === faz comparação

 

ai ele esta lendo apenas o ultimo valor setado, o correto seria:

 

<?php
//Identifica o nivel de acordo com o número cadastrado
$id_nivel = $row_usuarios['nivel_autor']; 

if($id_nivel==3){
$nivel = "Administrador";
}
if($id_nivel==2){
$nivel = "Gerente";
}
if($id_nivel==1){
$nivel = "Consultor";
}

echo $nivel;

?>

 

Só uma dica, nesse caso evite utilizar IF para criação de bloco condicional. Utilize switch.

 

switch($id_nivel)
{
   case 1:
       $nivel = "Consultor";
   break;

   case 2:
       $nivel = "Gerente";
   break;

   case 3:
       $nivel = "Administrador";
   break;
}

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade Dii, switch...case só é mais elegante que um monte de elseif's.

 

Só que infelizmente os IF/ELSEIF (e ELSE) proporcionam uma performance mínimamente superior se comparado ao switch.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade Dii, switch...case só é mais elegante que um monte de elseif's.

 

Só que infelizmente os IF/ELSEIF (e ELSE) proporcionam uma performance mínimamente superior se comparado ao switch.

 

Exato, mas como é uma comparação única, não tinha porquê criar 3 blocos condicionáis ao invés de criar somente um switch, não está errado, mas pode ser trabalhado de uma forma melhor e mais elegante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom saber que tem mais alguém paranóico com elegância no código como eu :lol:

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.