Jump to content


Photo

Função Que Altera Cor De Valores!


  • Faça o login para participar
6 replies to this topic

#1 GmEnDeS

GmEnDeS

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado

Posted 04/10/2009, 15:01

Boa tarde ilustres,

Possuo o seguinte código que exibe informações contidas no banco de dados:
$consulta = mysql_query("select * from gm_info where Nome = Nome");

while($linha = mysql_fetch_object($consulta)) {
	echo "$linha->Valor1";
	echo "$linha->Valor2";
	echo "$linha->Valor3";
	echo "$linha->Valor4";
	echo "$linha->Valor5";

Até aí tudo bem, o código funciona perfeitamente.
Porém, eu queria complementar um pouco.
Estes 5 valores exibidos podem variar de 0 à 10, como se fosse uma nota de avaliação:
0 < 0,1 < 0,2 ... < 4,9 < 5,0 < 5,1 < ... < 9,9 < 10,0
E eu gostaria que o código determinasse automaticamente, através de PHP ou JavaScript, caso os valores (Valor1, Valor2, Valor3, Valor4 e Valor5) sejam inferiores à 6,0 (até 5,9), seria exibido na cor #XXXXXX e superiores à 6,0 (à partir de) fossem exibidos na cor #YYYYYY.

Alguém poderia me ajudar?
Grato.

#2 Renato Maia

Renato Maia

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:Ribeirão Preto
  • Interesses:Desenvolvimento e tecnologia.

Posted 05/10/2009, 00:11

Bom dia GmEndes..

Segue abaixo a solução ehhehe...

$consulta = mysql_query("select * from gm_info where Nome = Nome");
//Cor para os valores inferiores a 6,0
$cor = "#ff0000";
while($linha = mysql_fetch_object($consulta)) {  
//Como PHP não é uma linguagem tipada, você pode comparar a string como se ela fosse numero...  
$valor = $linha->Valor1;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}
$valor = $linha->Valor2;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}
$valor = $linha->Valor3;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}
$valor = $linha->Valor4;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}
$valor = $linha->Valor5;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}

Espero ter ajudado..

Edição feita por: Renato Maia, 05/10/2009, 00:12.

Renato Maia
Microsoft Certified Prrofessional | MCP .NET
RenatoMaia.Net.br tudo sobre desenvolvimento .Net e Tecnologias.

#3 GmEnDeS

GmEnDeS

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado

Posted 05/10/2009, 06:10

Obrigado Renato,
Porém, me surgiu uma dúvida. Esse código irá considar todos os valores, incluindo os decimais de 0 à 10?
Obrigado!

#4 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 05/10/2009, 09:13

Bom dia amigo.
Tudo bom?

Como ele usa em seu código o < será sim considerado o valor decimal.
5.9 < 6 :lol:

Abraços
Mateus Antunes
MBASistemas

#5 GmEnDeS

GmEnDeS

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado

Posted 24/10/2009, 16:38

Bom dia GmEndes..

Segue abaixo a solução ehhehe...

$consulta = mysql_query("select * from gm_info where Nome = Nome");
//Cor para os valores inferiores a 6,0
$cor = "#ff0000";
while($linha = mysql_fetch_object($consulta)) {  
//Como PHP não é uma linguagem tipada, você pode comparar a string como se ela fosse numero...  
$valor = $linha->Valor1;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}
$valor = $linha->Valor2;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}
$valor = $linha->Valor3;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}
$valor = $linha->Valor4;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}
$valor = $linha->Valor5;
if($valor < 6){
  echo "<span style='color:#YYYYYY'>" . $valor . "</span>";
}else {
  echo "<span style='color:#XXXXXX'>" . $valor . "</span>";
}

Espero ter ajudado..


Ajudou, e muito. Obrigado!
Porém, na hora de adaptar aos meus códigos, surgiu um erro inesperado:
Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$' in /home/ben/public_html/demo/index.php on line 11

Este erro se deu pois ele lê uma linha chamada "Valor1", procurei alguma coisa na internet e testei, uma linha sem números, lê-se normalmente. Há algo que posso fazer para a linha continuar se chamando "Valor1"?
Na verdade, Valor1 é apenas um exemplo, a linha certa é 1Ano01. Alguns programadores na internet disseram para problemas semelhantes "retire os números", mas não queria fazê-lo, precisava manter o nome da linha, são quase 500 linhas numeradas, mechê-las em todas seria um tanto trabalhoso.

Sem mais,
Falopa!

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 24/10/2009, 17:38

Na verdade, Valor1 é apenas um exemplo, a linha certa é 1Ano01. Alguns programadores na internet disseram para problemas semelhantes "retire os números", mas não queria fazê-lo, precisava manter o nome da linha, são quase 500 linhas numeradas, mechê-las em todas seria um tanto trabalhoso.

Objetos (variáveis na verdade) não podem ter nomes iniciados por números. Se tu não quer mudar o nome das colunas, a única solução é puxar os dados em vetores associativos, utilizando a função mysql_fetch_assoc(). ;-)

[]’sAté mais

#7 GmEnDeS

GmEnDeS

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado

Posted 25/10/2009, 03:12

Na verdade, Valor1 é apenas um exemplo, a linha certa é 1Ano01. Alguns programadores na internet disseram para problemas semelhantes "retire os números", mas não queria fazê-lo, precisava manter o nome da linha, são quase 500 linhas numeradas, mechê-las em todas seria um tanto trabalhoso.

Objetos (variáveis na verdade) não podem ter nomes iniciados por números. Se tu não quer mudar o nome das colunas, a única solução é puxar os dados em vetores associativos, utilizando a função mysql_fetch_assoc(). ;-)

[]’s


Obrigado! O problema foi resolvido.
Para os leigos como eu, vou explicar o que fiz para solucionar meu problema.

Estava utilizando o código:
while ($linha = mysql_fetch_object($consulta)) {
echo "$linha->1Ano01";

Substitui para:
while ($linha = mysql_fetch_assoc($consulta)) {
echo $linha["1Ano01"];

Muito obrigado à todos que contribuiram para meu problema, principalmente para os colaboradores Renato Maia, MBA (estou certo que este não seja seu nome correto, apenas seu nickname) e Paulo Ricardo.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq