Jump to content
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.

 

Share this post


Link to post
Share on other 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];

Share this post


Link to post
Share on other 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?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By stefanyprs
      //modelo.html <!DOCTYPE html> <html lang="pt-br"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Hora do dia</title>     <link rel="stylesheet" href="estilo.css"> </head> <body onload="carregar()">     <header>         <h1> Hora do dia </h1>         </h1>     </header>     <section>         <div id="msg">             msg         </div>         <div id="foto">             <img class="imagem" src="fotomanha.jpg" alt="foto do dia">         </div>     </section>     <footer>         <p>&copy; Rodapé </p>     </footer>     <script src="script.js"></script> </body> </html>   //script.js function carregar () {     var msg = window.document.getElementById('msg')     var img  = window.document.getElementsByClassName('imagem')      var data = new Date()     var hora = data.getHours()          msg.innerHTML = 'Agora são ' + hora + ' horas'          if (hora >= 0 && hora < 12){         //Bom dia         img.src = 'fotomanha.jpg'         } else if (hora >= 12 && hora < 18){         //Boa tarde         img.src = 'fototarde.jpg'      } else {         //Boa noite         img.src = 'fotonoite.jpg'     } }   //estilo.css body{     background-color: aqua;     font: normal 15pt Arial; } header{     color:rgb(255, 255, 255);     text-align: center; } section{     background: white;     border-radius: 10px;     padding: 15px;     width: 500px;     margin:auto;     box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.329);      } footer{     color:white;     text-align: center;     font-style: italic;   } div{     text-align: center; } .imagem{     width: 500px;    /* largura da imagem */     height: 350px;   /*  altura da imagem  */     margin-top: 10px; /* margem do topo */ }
    • By jackvinte
      Olá, sou nova por aqui.
       
      É possível fazer um select join dentro de um case, segue o que preciso:
       
      select m.ArquivoOrdemMov,m.ContadorAgenteMov,m.DataMov,m.SeqOrdemMov,m.SeqProduto,m.SaldoTotalMov,p.DescricaoProduto --,case when m.ArquivoOrdemMov='OC'then 'Preço' /*dentro do then preciso pegar o preço ->select ci.CustoOCItem from OCItem ci join OC c on c.SeqOC=ci.SeqOC*/ --else 'Sem valor'end from Mov m join MovFisica f on m.SeqMovFisica=f.SeqMovFisica join OC c on m.ContadorAgenteMov=c.ContadorAgenteOC join Produto p on m.SeqProduto=p.SeqProduto where m.ArquivoOrdemMov='OC' and c.SituacaoOC='FECHADA'  
    • By Kefatif
      Prezados, boa tarde.
       
      Preciso de uma ajuda, tenho um select onde o usuário vai poder selecionar dentre os valores "1" e "2", mas gostaria que quando ele selecionasse o valor 2 fosse enviado um alerta de confirmação, estou tentando fazer através do evento blur, mas não estou sabendo fazer a comparação. Seria possível chamar o evento apenas se o valor selecionado for 2?
       
      Segue meu código teste abaixo.
       
      <!DOCTYPE html> <html> <head> <title>Teste</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script> <script type="text/javascript"> $(function(){ //inserir os códigos aqui $("#fase").blur(function(){ alert("O input perdeu o foco."); }); }); </script> </head> <body> <label style="width:15%">Fase<b style="color:red">*</b><br> <select name="fase" id="fase" class="form-control" required style="width:100%" > <option value="1">1</option> <option value="2">2</option> </select> </label> <label style="width:15%">teste<b style="color:red">*</b><br> <select name="teste" class="form-control" required style="width:100%" > <option value="">Selecione</option> <option value="SIM">SIM</option> <option value="NÃO">NÃO</option> </select> </label> </body> </html>  
      Agradeço desde já.
       
      Abs.
    • By SAS Junior
      Olá, sou novo aqui e em SQL Server, estou com um problema para buscar um resultado. 
      Caso hoje seja segunda, trazer as instalações dos últimos 3 dias (sexta, sábado e domingo), caso não seja, trazer só os de ontem, tentei da forma abaixo e muitas outras e não consegui, desde já agradeço.    
      SELECT codigoCliente AS [CÓD], CpfCnpj AS [CPF/CNPJ] ,NomeFantasia as [NOME FANTASIA] ,UPPER(NomeContato) as [NOME DE CONTATO] ,CASE WHEN CLI.DDDCelular IS NULL THEN 'NÃO TEM' ELSE DDDCelular END AS [DDD CEL] ,CASE WHEN Celular IS NULL THEN 'NÃO TEM' ELSE Celular END AS CELULAR ,CASE WHEN DDDTelefone IS NULL THEN 'NÃO TEM' ELSE DDDTelefone END AS [DDD TEL] ,CASE WHEN Telefone IS NULL THEN 'NÃO TEM' ELSE Telefone END AS TELEFONE ,DataInstalacao AS [INSTALAÇÃO] ,DATEPART(weekday,DataInstalacao) as [DIASEMANA] ,UPPER(Departamento) AS [DEPTO CAD] ,upper(UsuarioCadastro) as [CADASTRADO POR] ,CASE WHEN UPPER(EMAIL) IS NULL THEN 'NÃO TEM EMAIL' ELSE UPPER(EMAIL) END AS EMAIL FROM CLIENTE WHERE (CASE WHEN (DATEPART(weekday,GETDATE()) = '2' THEN DATEPART(DAY, DataInstalacao) >= DATEPART(DAY, GETDATE()-3) ELSE DATEPART(DAY, DataInstalacao) = DATEPART(DAY, GETDATE()-1) END) AND MONTH(DataInstalacao) = MONTH(GETDATE()) AND YEAR(DataInstalacao) = YEAR(GETDATE()) AND Situacao = 'MAQUINA INSTALADA'  
    • By biakelly
      Olá Tudo bem?
       
      Poderiam me ajudar com a seguinte condição:
      <?php if ($row['facebook'] != "") { echo '<a class="btn btn-dark btn-social mx-2" href="<?php echo $row['facebook']; ?>"><i class="fab fa-facebook-f"></i></a>'; } else { echo ''; } ?>  
      Estou recebendo o seguinte erro:
      Parse error: syntax error, unexpected 'facebook' (T_STRING), expecting ';' or ',' in C:\xampp\htdocs\biazinha\inicial.php on line 371
       
       
      A linha 371 é essa:
      echo '<a class="btn btn-dark btn-social mx-2" href="<?php echo $row['facebook']; ?>"><i class="fab fa-facebook-f"></i></a>';  
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.