Ir para conteúdo
diulio

Comparação if ou switch

Recommended Posts

Bom dia a todos, gostaria de uma ajuda para adicionar uma classe no maior número, segundo maior número e o menor número.

Tenho uma variável $Resultado que está fazendo uma comparação dos números e quando localiza um número igual soma +1, blz ate aqui está tranquilo.

Aí tenho uma tabela que monta o $Resultado linha a linha com a soma de quantos números foram iguais para cada linha.

Agora minha dúvida como faço para colocar uma classe (colorindo o texto), fiz dois testes um com IF que funciona mais não como eu gostaria e um com SWITCH que não funciona como eu gostaria, segue código abaixo

 

<?php

switch ($Resultado) {
	case '10':
	case '9':
	case '8':
	case '7':
	case '6':
	case '5':
	case '4':
	case '3':
	case '2':
	case '1':
		# code...
		echo "class='success text-success text-center'";
		break;
	case '10':
	case '9':
	case '8':
	case '7':
	case '6':
	case '5':
	case '4':
	case '3':
	case '2':
	case '1':
		# code...
		echo "class='info text-info text-center'";
		break;
	case '10':
	case '9':
	case '8':
	case '7':
	case '6':
	case '5':
	case '4':
	case '3':
	case '2':
	case '1':
		# code...
		echo "class='danger text-danger text-center'";
		break;
	default:
		# code...
		break;
}

?>

Nesse código acima está "colorindo" (success = verde) todos os resultados. A minha ideia é quando localizar o maior número aplica a classe (success = verde) e passa para a próxima comparação quando localizar o segundo maior número aplica a classe (info = azul) e depois para ultima comparação e quando localizar o menor número aplicar a classe (danger = vermelho). Como seria a melhor opção para essa comparação?

 

Agora tentei com IF e funciona ate certo ponto, segue abaixo o codigo

<?php 
	if( $totalAcertos == 10 || $totalAcertos == 9) { 
			echo "class='success text-success'";
		}
	elseif ($totalAcertos == 9 || $totalAcertos == 8) {
		# code...
		echo "class='info text-info'";
	}
	elseif ($totalAcertos == 2 || $totalAcertos == 1 || $totalAcertos == 0) {
		# code...
		echo "class='danger text-danger'";
	}
?>

Nesse caso também estou com o mesmo problema aplicando a classe nos dois números maiores (mas nem sempre será esses dois números, pois pode ter caso em que o número 8 ou 7... será o maior). Como seria a melhor maneira de fazer essa comparação?

 

 

Desde já, muito obrigado.

Caso eu não tenha sido muito claro por favor me avise que tenho explicar melhor.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

já pensou em montar uma array e dar um arsort? aí fica mamão com melado, só pegar as duas primeiras linhas e a última tipo

 

$maior = $array[0];

$segundo = $array[1];

$menor = $array[count($array) - 1];

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, marsolim disse:

já pensou em montar uma array e dar um arsort? aí fica mamão com melado, só pegar as duas primeiras linhas e a última tipo

 

$maior = $array[0];

$segundo = $array[1];

$menor = $array[count($array) - 1];

 

Boa tarde,

 

Então fui tentar montar um array mas como é um resultado (soma) não consegui pois o array pega o mesmo numero(sozinho) do resultado... Imprimi assim: Array ( [0] => 5 )

 

Essa é uma ótima ideia... 

Alguma dica de como posso pegar todos os valores e montar o array?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por Loconarrativo
      Bom, no meu form, eu peço para o cliente digitar um valor (esse valor em reais), mas para continuar eu preciso me certificar que a variável que contem o valor, tenha 16 dígitos ao total, então se a pessoa digita uma 1000.00, eu preciso completar com 9 zeros a esquerda (fica assim 0000000001000.00), para eu saber quantos dígitos tem na variável, eu faço
      $i = strlen( $_POST['valor']);   ai eu faço
      $u = 8 - $i ; eu tenho o numero de zeros que preciso colocar a esquerda, mas como eu transformo isso em vários zeros? 
    • Por mr22robot
      Estou com uma dúvida. É possível determinar um select a partir de uma escolha?
      Ex. 
      SELECT CASE WHEN a < b THEN select * from tabela1 WHEN d < e THEN select * form tabela2 END FROM tabela; Algo parecido. Se uma condição for atendida select1 , se outra condição for atendida: select2.
      O que acontece: estou com um relatorio que preciso criar no winthor e não consigo melhorar isso. Tenho de fazer três relatorios como solução. Se eu consigo implantar isso, eu faria somente um relatorio. 
      Tipo se marcar um campo, sai um relatorio. Se marcar outro, saí outro relatorio.
    • Por vagner.analista
      Senhores boa tarde, alguém pode me ajudar?
       
      Tenho a seguinte situação, um campo data em duas tabelas, onde caso o contrato tenha aditivo o campo data da tabela TITMCNTADITIVO,  fica preenchido. caso o contrato não tem aditivo ela fica com o valor null. Então caso o valor dessa tabela aditivo estiver null, eu gostaria de apresentar o campo data da tabela TITMCNT do contrato que tem a data fim do contrato, com o select abaixo eu consigo saber se tem aditivo ou não:
      SELECT TOP 1   (DATA + 90) AS DATAFIM              FROM TITMCNTADITIVO (NOLOCK)             WHERE 1=1             AND CODCOLIGADA = 1             AND IDCNT = 72 Neste caso este contrato não tem aditivo, então, gostaria que ele executasse outro SELECT:
      SELECT (DATAFIM + 90) AS DATA_FIM  FROM TITMCNT             WHERE IDCNT = '72'  
       
      O mais lógico que tentei foi assim, mas não dá certo:

      SELE
      CT TOP 1  (DATA + 90) AS DATAFIM, CASE (DATA) WHEN IS NULL THEN ( SELECT (DATAFIM + 90) AS DATA_FIM  FROM TITMCNT                     WHERE IDCNT = '72' ) END AS DATAFIM FROM TITMCNTADITIVO (NOLOCK) WHERE 1=1 AND CODCOLIGADA = 1 AND IDCNT = 72  
    • Por nicolasbessa
      Boa tarde!
       
      Como aplicar a regra abaixo em um select?

      Regra Join
      Quando o campo substr(x, 1,1)  ='1'
      montar a chave de pesquisa:
      y = '8' AND y1 =  'L'||lpad( x1, 2)) 

      Quando o campo substrt(x, 1,1) for igual ='A'
      montar a chave de pesquisa:
      y = '8' AND y1 =  'M'||lpad( x1, 2)) 
       
      obrigado!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.