Ir para conteúdo

Arquivado

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

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

  • Conteúdo Similar

    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por Rodrigo Bigas
      Olá colegas, 
      Desenvolvi um sistema simples de boletim escolar. Conforme os dados são inseridos nas textfields ao clicar no botão Resultado, deverá mostrar em uma JTable. O problema é que a última coluna (resultado) da JTable tem que estar dentro de uma condição if/else para setar se o aluno está "aprovado", "em recuperação" ou "reprovado conforme a condição". Estou com dificuldades em descobrir qual é o método correto que seta este resultado de forma dinâmica. Segue os prints:
       
      Conforme o código e o print acima, o sistema funciona somente para a primeira linha, porque está setando de forma estática, obtendo os valores do índice e coluna, qual seria o método para setar o valor de forma dinâmica do índice e coluna?
    • Por Luiz Henrique
      Olá,

      Fiz um sistema de busca para preços, e a mesma será realizada em tags, porém como o conteúdo é estático e não há necessidade de segurança é gerado um json para não precisar consultar o DB toda hora, segue parte do código:
       
      ... foreach ($data as $key => $value) { if (strpos($value->$alvo, $valor) !== false) { $array[] = [ ... ]; } } ... O código é simples, é um foreach para percorrer o json e se encontrar a busca,  cria um array com as informações, ok.
       
      Mas queria uma busca com no mysqli,  algo semelhante ao %LIKE%, existe alguma forma de eu fazer isso no php?
      Porque da forma que fiz só funciona se digitar a palavra inteira na busca.
       
      Ex:
      Quero buscar "computador", não consigo digitar as 4 primeiras letras da busca: "comp", precisa ser "computador".
       
      Obrigado.
    • Por 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 */ }
×

Informação importante

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