Ir para conteúdo

Arquivado

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

lbitte

Comando IF, Else?

Recommended Posts

// cria a instrução SQL que vai selecionar os dados
$query = "SELECT * FROM Feedback WHERE ID = '$current_user->ID'";
// executa a query
$dados = mysql_query($query, $con) or die(mysql_error());
// transforma os dados em um array
$linha = mysql_fetch_assoc($dados);
// calcula quantos dados retornaram
$total = mysql_num_rows($dados);
?>

<html>
	<head>
	<style>
table {
    font-family: arial, sans-serif;
    border-collapse: collapse;
    width: 100%;
    font-size: 10.5px !important;
    font-size: smaller; 
}

td, th {
    border: 1px solid #dddddd;
    text-align: center;
    padding: 1px;
}

tr:nth-child(even) {
    background-color: #dddddd;
}
table tbody td {
    text-align: center;
}

</style>
	
	<title>Meu Feedback</title>
</head>
<body>

<table>
  <tr>
   
	<th  align="center"><b>Mes </b> </th>
	<th  align="center"><b>HH </b> </th>
	<th  align="center"><b>Amigos </b> </th>
	<th  align="center"><b>Cartao de Ponto</b> </th>
	<th  align="center"><b>Fique Alerta </b> </th>
	<th align="center"><b>DDS </b> </th>
	<th  align="center"><b>ORT </b> </th>
	<th  align="center"><b>Check Abelhas </b> </th>
	<th  align="center"><b>Check Ferramentas</b> </th>
  
  
  </tr>
  
  <?php
	// se o número de resultados for maior que zero, mostra os dados
	if($total == 0) {
?><b><br /><font color="#FF0000"><?php
  echo "Nenhum registro de Feedback encontrado";

} elseif ($total > 0) {
   
		// inicia o loop que vai mostrar todos os dados
		do {
?>
 <tr>
		<td  align="center"> <?=$linha['mes']?> </td>
		<td align="center"> <?=$linha['hh']?> </td>
	     <td align="center"> <?=$linha['progamg']?> </td>
		<td  align="center"> <?=$linha['cponto']?> </td>
		<td  align="center"> <?=$linha['fiqalerta']?> </td>
		<td  align="center"> <?=$linha['dds']?></td>
		<td align="center"> <?=$linha['ort']?> </td>
		<td  align="center"> <?=$linha['checkab']?> </td>
		<td  align="center"> <?=$linha['checkferr']?> </td>
 </tr>

<?php
$total2 = $total2 + $linha['progamg'] + $linha['fiqalerta'] +$linha['dds'] + $linha['ort'] + $linha['checkab'] + $linha['checkferr'];
$totalhh = $totalhh + $linha['hh'];
$totalamg = $totalamg + $linha['progamg'];
$totalcponto = $totalcponto + $linha['cponto'];
$totalfiqalerta = $totalfiqalerta + $linha['fiqalerta'];
$totaldds = $totaldds + $linha['dds'];
$totalort = $totalort + $linha['ort'];
$totalcheckab = $totalcheckab + $linha['checkab'];
$totalcheckferr = $totalcheckferr + $linha['checkferr'];
$t = ("TOTAL");
?>
  
<?php

		// finaliza o loop que vai mostrar os dados
		}while($linha = mysql_fetch_assoc($dados));
	// fim do if 

	}
?>
  

</body>
</html>
<?php

// tira o resultado da busca da memória
mysql_free_result($dados);
?><font color="#000000"><?php
?>

 
</body>
</html>


 <tr>
		<td  align="center"><font color="#006600"><b> <?=$t?> </td>
		<td align="center"><font color="#0000FF"><b> <?=$totalhh?> </td>
	        <td align="center"><font color="#0000FF"><b> <?=$totalamg?> </td>
		<td  align="center"><font color="#0000FF"><b> <?=$totalcponto?> </td>
		<td  align="center"><font color="#0000FF"><b> <?=$totalfiqalerta?> </td>
		<td  align="center"><font color="#0000FF"><b> <?=$totaldds?></td>
		<td align="center"><font color="#0000FF"><b> <?=$totalort?> </td>
		<td  align="center"><font color="#0000FF"><b> <?=$totalcheckab?> </td>
		<td  align="center"><font color="#0000FF"><b> <?=$totalcheckferr?> </td>
 </tr>


<font color="#0000FF"><table border="2" width="29%">
	<tr>
		<td>
		<p align="center"><font color="#000000" size="3"><b>PARTICIPACAO PLANILHAS SEGURANCA</td>
	
	
		<td  align="center"><font color="#006600" size="3"><b> <?=$total2?> </td>
	</tr>
</table>

Boa noite, estou com esse código que imprimi em uma tabela resultados de um banco de dados, eu quero fazer um IF, ELSE (estou com dificuldade) que verifica se o valor for menor que zero ele imprimi em Vermelho e se for Maior que zero imprimi em preto negrito... Eu já usei If else em outras scripts, mas nesse ai esta dando um error no código... deve ser uma questão de posicionamento, se alguem puder dar um alo de onde começo o IF que verifica se o valor é menor que zero...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O if no PHP é bem tranquilo.

Na teoria:

$var = -10;

if( $var < 0 ) {
	echo 'Vermelho';
} else {
	echo 'Preto';
}

 

Porém, mais perto do que você precisa, eu criei um código que faz o seguinte.

 

1. Array com valores randomizados negativos e positivos.

Usei esse código apenas para popular o $array.

$array = array();
$i = 0;

while( $i <= 10 ) { 
	$array[ $i ] = rand(-100, 100);
	$i++;
}

Resultado do $array.

array (size=11)
  0 => int -4
  1 => int 75
  2 => int 38
  3 => int -97
  4 => int -37
  5 => int -74
  6 => int 47
  7 => int 32
  8 => int 81
  9 => int 56
  10 => int -72

2. Percorri o array e, com o if ternário, verifiquei se o número era menor que 0 para exibir em vermelho e maior que 0 para exibir em preto.

foreach( $array as $num ) {

	$color = $a < 0 ? '#F00' : '#000';

	echo '<font color="' . $color . '">';
	echo $num;
	echo '</font>';

}

Resultado:

Screenshot_1.png.100ece3ef062dd349c1092aab9ba3ece.png

 

Agora é só adaptar esse meu código ao seu.

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, Luciano Carvalho disse:

 

Se quiser postar suas tentativas aqui, eu te auxilio.

Na verdade não soube começar, tentei colocar um IF lá onde ele imprimi as variaveis na tela e deu error

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 horas atrás, Luciano Carvalho disse:

Certo. No seu código, qual é a variável que você quer fazer o if?

} elseif ($total > 0) {
   
		// inicia o loop que vai mostrar todos os dados
		do {
?>
 <tr>
		<td  align="center"> <?=$linha['mes']?> </td>
		<td align="center"> <?=$linha['hh']?> </td>
	     <td align="center"> <?=$linha['progamg']?> </td>
		<td  align="center"> <?=$linha['cponto']?> </td>
		<td  align="center"> <?=$linha['fiqalerta']?> </td>
		<td  align="center"> <?=$linha['dds']?></td>
		<td align="center"> <?=$linha['ort']?> </td>
		<td  align="center"> <?=$linha['checkab']?> </td>
		<td  align="center"> <?=$linha['checkferr']?> </td>
 </tr>

Nessa parte ai, ele tem que verificar o $linha['mes'] e ver se for menor que zero ou igua imprimi em vermelho, se não for preto normal. Mesma coisa pra todos ai, $linha['hh'], $linha['progamg'] etc....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você que imprimir em vermelho quando o mês for menor que zero, é isso?

 

Veja sugestão abaixo... na tag tr você usar um ternário e atribuir a classe CSS que deseja.... Obviamente, o CSS tem que existir.

} elseif ($total > 0) {
   
		// inicia o loop que vai mostrar todos os dados
		do {
?>
 <tr class="<?php echo ($linha['mes']<0)? 'redClass': 'blackClass'?>" >
		<td  align="center"> <?=$linha['mes']?> </td>
		<td align="center"> <?=$linha['hh']?> </td>
	     <td align="center"> <?=$linha['progamg']?> </td>
		<td  align="center"> <?=$linha['cponto']?> </td>
		<td  align="center"> <?=$linha['fiqalerta']?> </td>
		<td  align="center"> <?=$linha['dds']?></td>
		<td align="center"> <?=$linha['ort']?> </td>
		<td  align="center"> <?=$linha['checkab']?> </td>
		<td  align="center"> <?=$linha['checkferr']?> </td>
 </tr>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 12/02/2017 at 22:42, Elemke disse:

Você que imprimir em vermelho quando o mês for menor que zero, é isso?

 

Veja sugestão abaixo... na tag tr você usar um ternário e atribuir a classe CSS que deseja.... Obviamente, o CSS tem que existir.


} elseif ($total > 0) {
   
		// inicia o loop que vai mostrar todos os dados
		do {
?>
 <tr class="<?php echo ($linha['mes']<0)? 'redClass': 'blackClass'?>" >
		<td  align="center"> <?=$linha['mes']?> </td>
		<td align="center"> <?=$linha['hh']?> </td>
	     <td align="center"> <?=$linha['progamg']?> </td>
		<td  align="center"> <?=$linha['cponto']?> </td>
		<td  align="center"> <?=$linha['fiqalerta']?> </td>
		<td  align="center"> <?=$linha['dds']?></td>
		<td align="center"> <?=$linha['ort']?> </td>
		<td  align="center"> <?=$linha['checkab']?> </td>
		<td  align="center"> <?=$linha['checkferr']?> </td>
 </tr>

 

Não deu, aparece nada...

 

fiz assim, citei as classes

redClass {
    background-color: #006600;
}
blackClass {
    background-color: #006600;
}

 

e meu código ficou assim

 

} elseif ($total > 0) {
   
		// inicia o loop que vai mostrar todos os dados
		do {
?>
 <tr>
		<td  align="center"> <?=$linha['mes']?> </td>
		<td class="<?php echo ($linha['hh']>0)? 'redClass': 'blackClass'?>" ></td>
	     <td align="center"> <?=$linha['progamg']?> </td>
		<td  align="center"> <?=$linha['cponto']?> </td>
		<td  align="center"> <?=$linha['fiqalerta']?> </td>
		<td  align="center"> <?=$linha['dds']?></td>
		<td align="center"> <?=$linha['ort']?> </td>
		<td  align="center"> <?=$linha['checkab']?> </td>
		<td  align="center"> <?=$linha['checkferr']?> </td>
 </tr>

obs: nao alterei o mes, alterei na coluna de hh

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Luciano Carvalho disse:

No CSS as classes devem ser iniciadas com o ponto (.).

Fora que as duas cores estavam iguais.

 

Então, deve ficar assim:


.redClass {
    background-color: #ff0;
}

.blackClass {
    background-color: #000;
}

 

Fiz oque disse, ficou assim

<style>
.redClass {
    background-color: #ff0;
}

.blackClass {
    background-color: #000;
}
table th {
      text-align: center;
			}

			table tbody td {
      text-align: center;

			}

			table tbody tr:nth-child(2n) td {
      text-align: center;
			}
table {
    font-family: arial, sans-serif;
    border-collapse: collapse;
    width: 100%;
    font-size: 10.5px !important;
    font-size: smaller; 
}

td, th {
    border: 1px solid #dddddd;
    text-align: center;
    padding: 1px;
}

tr:nth-child(even) {
    background-color: #dddddd;
}
table tbody td {
    text-align: center;
}

</style>

e a linha do mes ficou assim

 <tr>
		<tr class="<?php echo ($linha['mes']<0)? 'redClass': 'blackClass'?>" >
		<td align="center"> <?=$linha['hh']?> </td>
	     <td align="center"> <?=$linha['progamg']?> </td>
		<td  align="center"> <?=$linha['cponto']?> </td>
		<td  align="center"> <?=$linha['fiqalerta']?> </td>
		<td  align="center"> <?=$linha['dds']?></td>
		<td align="center"> <?=$linha['ort']?> </td>
		<td  align="center"> <?=$linha['checkab']?> </td>
		<td  align="center"> <?=$linha['checkferr']?> </td>
 </tr>

aí ele não imprimi nada na tabela, fica em branco a parte que deveria ir o mes...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei pra isso

<tr>
		 <tr class="<?php echo ($linha['mes']<0)? 'redClass': 'blackClass'?>" >
		<td class="<?php echo ($linha['hh']<0)? 'redClass': 'blackClass'?>" >
	     <td align="center"> <?=$linha['progamg']?> </td>
		<td  align="center"> <?=$linha['cponto']?> </td>
		<td  align="center"> <?=$linha['fiqalerta']?> </td>
		<td  align="center"> <?=$linha['dds']?></td>
		<td align="center"> <?=$linha['ort']?> </td>
		<td  align="center"> <?=$linha['checkab']?> </td>
		<td  align="center"> <?=$linha['checkferr']?> </td>
 </tr>

agora ficou preto na parte do mes, mas na linha do HH nao aparece nada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos pela ajuda, podem trancar o tópico.

resolvi assim

Criei as classes CSS como nosso amigo disse

<style>
.redClass {
 font-weight: bold;
    color: #FF0000;
}

.blackClass {
font-weight: bold;
    color: #006600;
}
.blueClass {
font-weight: bold;
    color: #0000FF;
}
.greenClass {
font-weight: bold;
    color: #006600;
}

depois eu acertei as tabelas de impressão para

} elseif ($total > 0) {
   
		// inicia o loop que vai mostrar todos os dados
		do {
?>
 <tr>
		 <tr class="<?php echo ($linha<0)? 'blueClass': 'blueClass'?>" >
		<td class="<?php echo ($linha['mes']==0)? 'blueClass': 'blueClass'?>" > <?=$linha['mes']?>
		<td class="<?php echo ($linha['hh']==0)? 'redClass': 'blackClass'?>" > <?=$linha['hh']?>
	     <td class="<?php echo ($linha['progamg']==0)? 'redClass': 'blackClass'?>" > <?=$linha['progamg']?>
		<td class="<?php echo ($linha['cponto']==0)? 'redClass': 'blackClass'?>" > <?=$linha['cponto']?> 
		<td class="<?php echo ($linha['fiqalerta']==0)? 'redClass': 'blackClass'?>" > <?=$linha['fiqalerta']?> 
		<td class="<?php echo ($linha['dds']==0)? 'redClass': 'blackClass'?>" > <?=$linha['dds']?> 
	<td class="<?php echo ($linha['ort']==0)? 'redClass': 'blackClass'?>" > <?=$linha['ort']?> 
	<td class="<?php echo ($linha['checkab']==0)? 'redClass': 'blackClass'?>" > <?=$linha['checkab']?> 
<td class="<?php echo ($linha['checkferr']==0)? 'redClass': 'blackClass'?>" > <?=$linha['checkferr']?> 
 </tr>

obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • 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 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 */ }
    • Por biakelly
      Oi,
       
       não estou conseguindo fazer isso, podem me ajudar?
       
      <?php $botaoaluno = mysql_query("SELECT aluno FROM escola WHERE colegio_id='$colid'",$db); $alunoativo = mysql_num_rows($botaoaluno); if ($alunoativo = 1) { ?> <?php $pegaralunos = mysql_query("SELECT alunosdisponiveis FROM tabelasalunos WHERE userID='{$_SESSION['userid']}' and alunosID='{$objauALN["alunID"]}'", $db); $classe = mysql_num_rows($pegaralunos); if ($classe > 0) { ?> <button name="geraralunos">Aluno presente</button> <?php } else { ?> <button name="geraralunos">Aluno faltante</button> <? } } else{ ?> <p>Não tem aluno</p> <?php } ?> o que eu preciso, se o alunoativo for igual a 1, fazer o próximo IF, mas se ele for igual a 0 mostrar a mensagem (não tem aluno)
    • Por Dinho Nunes LC
      Como posso adicionar uma terceira opção a essa td?
       
      Funciona assim.
       
      <td align="center"> <?php if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} ?> </td>
       
      Resultado atual.
       
      if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";}  ~ Exibe Expirado / Está Ok
      = 0 Exibindo "Em 0 Dias"
      else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";}  ~ Exibe a subtração dos dias. / Está Ok
       
      Resultado pretendido
       
      if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} Exibe Expirado / Está Ok
      = 0 Exibir a palavra "Hoje"
      else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} Exibe a subtração dos dias. / Está Ok
    • Por Gildvan Arley
      <?php $data = date("d/m/Y"); $fimVip = $exibir_pag["fimvip"]; $dataPag = $exibir_pag["data"]; if ($fimVip == NULL){ echo "<span class='label label-danger'>Aguardando Pagamento</span>"; } else if ($fimVip < $data){ echo "<span class='label label-success'>Vip ativado</span>"; } else if ($fimVip == $data){ echo "<span class='label label-info'>Acaba hoje</span>"; } else if ($fimVip > $data){ echo "<span class='label label-danger'>Vip Removido</span>"; } ?> Estou com um problema
      o else só esta indo ate o Vip Ativado o restante não vai mais.
      assim que o jogador se cadastra ele recebe a data como NULL de pagamento, por isso usei ali $fimVip == NULL
       
      Print do painel
      http://prntscr.com/po5ph2
×

Informação importante

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