alessandro.albuquerque Postado Maio 11, 2016 Denunciar Share Postado Maio 11, 2016 Prezados, Alguém pode me ajudar pois não consigo definir a varíavel "$nosdb" para enviar pro BD. <?php @$nos = @$nosdp + @$nosc + @$nosi; if (@$nos == 8){ @$nosbd = 'Crítica'; echo "<font color='#F70909'>Crítica</font>"; } elseif (@$nos == 7){ @$nosbd = 'Alta'; echo "<font color='#F74909'>Alta</font>"; } elseif (@$nos == 6 || 5 || 4){ @$nosbd = 'Moderada'; echo "<font color='#FFCC00'>Moderada</font>"; } elseif (@$nos == 3 || 2 || 1){ @$nosbd = 'Baixa'; echo "<font color='#009900'>Baixa</font>"; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Maio 11, 2016 Denunciar Share Postado Maio 11, 2016 Olá! porque usar esse arroba antes das variáveis? Nos || ou, você precisa reescrever a variável: elseif ($nos == 6 || $nos == 5 || $nos == 4){ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alessandro.albuquerque Postado Maio 11, 2016 Autor Denunciar Share Postado Maio 11, 2016 24 minutos atrás, lowys disse: Olá! porque usar esse arroba antes das variáveis? Nos || ou, você precisa reescrever a variável: elseif ($nos == 6 || $nos == 5 || $nos == 4){ Oh meu caro o @ é para não exibir a mensagem de erro de consulta do banco de dados, caso alguma variável não tenha sido definida. E s pipes os dois modos é correto. O meu problema é que a varíavel $nosdb não ganha nenhum valor. Eu quero que ela tenha os valores de acordo com os critérios sendo "1 ou 2 ou 3 para BAIXA; 4 ou 5 ou 6 para MODERADA; 7 para ALTA; 8 para MODERADA" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wash Postado Maio 11, 2016 Denunciar Share Postado Maio 11, 2016 Olá! Creio que seja realmente necessário reescrever a variável quando usar operadores lógicos. Veja: http://php.net/manual/pt_BR/language.operators.logical.php Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Stoma Postado Maio 11, 2016 Denunciar Share Postado Maio 11, 2016 - A variável $nosdb, como você escreveu na sua pergunta, não existe (ao menos no código que você mostrou); - Você tem que reescrever a variável sim, conforme já disseram. Apesar das duas formas funcionarem sem erros, o funcionamento e a lógica de if($x == 1 || 2) é diferente de if($x == 1 || $x == 2) (sendo o segundo, provavelmente o que você precisa); - Pode ser que $nos tenha valor maior que 8 ou menor que 0. Você deveria adicionar um ELSE aí, para fazer este tratamento; - Os @ que você colocou só vão te atrapalhar, pois são os ERROR/WARNING/NOTICE que ajudam a achar e corrigir problemas. Tanto que pode ser que esteja com algum problema aí nesse código, mas você não viu por ter ocultado as mensagens. O mais correto é no ambiente de desenvolvimento os erros estarem habilitados (para o programar ver as mensagens), e no ambiente de produção (servidor que os usuários utilizam) as mensagens estarem ocultas. Isso é feito habilitando/desabilitando a configuração display_errors (http://php.net/manual/pt_BR/errorfunc.configuration.php#ini.display-errors); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alessandro.albuquerque Postado Maio 11, 2016 Autor Denunciar Share Postado Maio 11, 2016 1 hora atrás, Stoma disse: - A variável $nosdb, como você escreveu na sua pergunta, não existe (ao menos no código que você mostrou); - Você tem que reescrever a variável sim, conforme já disseram. Apesar das duas formas funcionarem sem erros, o funcionamento e a lógica de if($x == 1 || 2) é diferente de if($x == 1 || $x == 2) (sendo o segundo, provavelmente o que você precisa); - Pode ser que $nos tenha valor maior que 8 ou menor que 0. Você deveria adicionar um ELSE aí, para fazer este tratamento; - Os @ que você colocou só vão te atrapalhar, pois são os ERROR/WARNING/NOTICE que ajudam a achar e corrigir problemas. Tanto que pode ser que esteja com algum problema aí nesse código, mas você não viu por ter ocultado as mensagens. O mais correto é no ambiente de desenvolvimento os erros estarem habilitados (para o programar ver as mensagens), e no ambiente de produção (servidor que os usuários utilizam) as mensagens estarem ocultas. Isso é feito habilitando/desabilitando a configuração display_errors (http://php.net/manual/pt_BR/errorfunc.configuration.php#ini.display-errors); já tentei os dois modos e não define um valor. Lembrando que a variável "$nosc" e "$nosi" são consultadas no banco de dados. Tudo funciona normal, apenas a "$nosbd" não define. $nos = $nosdp + $nosc + $nosi; if ($nos == 8){ $nosbd = 'Crítica'; echo "<font color='#F70909'>Crítica</font>"; } elseif ($nos == 7){ $nosbd = 'Alta'; echo "<font color='#F74909'>Alta</font>"; } elseif ($nos == 6 || $nos == 5 || $nos == 4){ $nosbd = 'Moderada'; echo "<font color='#FFCC00'>Moderada</font>"; } else{ $nosbd = 'Baixa'; echo "<font color='#009900'>Baixa</font>"; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Stoma Postado Maio 11, 2016 Denunciar Share Postado Maio 11, 2016 Adiciona um var_dump depois das verificações para ver como está a variável: var_dump($nosbd); die("??"); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alessandro.albuquerque Postado Maio 11, 2016 Autor Denunciar Share Postado Maio 11, 2016 string(8) "Moderada" ?? 3 horas atrás, Stoma disse: Adiciona um var_dump depois das verificações para ver como está a variável: var_dump($nosbd); die("??"); string(8) "Moderada" ?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Stoma Postado Maio 12, 2016 Denunciar Share Postado Maio 12, 2016 Ué, mas ta aí... ela tem valor sim.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marlon255 Postado Maio 12, 2016 Denunciar Share Postado Maio 12, 2016 @alessandro.albuquerque Resolvido? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marlon255 Postado Maio 12, 2016 Denunciar Share Postado Maio 12, 2016 if ($nos == 8){ $nosbd = 'Crítica'; echo "<font color='#F70909'>".$nosbd."</font>"; } elseif ($nos == 7){ $nosbd = 'Alta'; echo "<font color='#F74909'>".$nosbd."</font>"; } elseif ($nos == 6 || $nos == 5 || $nos == 4){ $nosbd = 'Moderada'; echo "<font color='#FFCC00'>".$nosbd."</font>"; } elseif ($nos == 3 || $nos == 2 || $nos == 1){ $nosbd = 'Baixa'; echo "<font color='#009900'>".$nosbd."</font>"; }else{ echo "Calculo com valor diferente do requisitado."; } Tenta assim mano, que tu já ver se o $nosbd ta dando algum retorno :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Stoma Postado Maio 12, 2016 Denunciar Share Postado Maio 12, 2016 Se por acaso ainda não deu certo, como você está usando a variável $nosbd depois das verificações? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alessandro.albuquerque Postado Maio 12, 2016 Autor Denunciar Share Postado Maio 12, 2016 Resolvido... 10 horas atrás, marlon255 disse: if ($nos == 8){ $nosbd = 'Crítica'; echo "<font color='#F70909'>".$nosbd."</font>"; } elseif ($nos == 7){ $nosbd = 'Alta'; echo "<font color='#F74909'>".$nosbd."</font>"; } elseif ($nos == 6 || $nos == 5 || $nos == 4){ $nosbd = 'Moderada'; echo "<font color='#FFCC00'>".$nosbd."</font>"; } elseif ($nos == 3 || $nos == 2 || $nos == 1){ $nosbd = 'Baixa'; echo "<font color='#009900'>".$nosbd."</font>"; }else{ echo "Calculo com valor diferente do requisitado."; } Tenta assim mano, que tu já ver se o $nosbd ta dando algum retorno :) Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
alessandro.albuquerque
Prezados,
Alguém pode me ajudar pois não consigo definir a varíavel "$nosdb" para enviar pro BD.
<?php
@$nos = @$nosdp + @$nosc + @$nosi;
if (@$nos == 8){
@$nosbd = 'Crítica';
echo "<font color='#F70909'>Crítica</font>";
}
elseif (@$nos == 7){
@$nosbd = 'Alta';
echo "<font color='#F74909'>Alta</font>";
}
elseif (@$nos == 6 || 5 || 4){
@$nosbd = 'Moderada';
echo "<font color='#FFCC00'>Moderada</font>";
}
elseif (@$nos == 3 || 2 || 1){
@$nosbd = 'Baixa';
echo "<font color='#009900'>Baixa</font>";
}
?>
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.