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

Share this post


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

Share this post


Link to post
Share on other sites

Certo, vou dar uma estudada. Nao sei mecher com array

Grato

Edited by João Batista Neto
Remover quote desnecessário

Share this post


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

Share this post


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

Share this post


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

 

  • +1 1

Share this post


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

Share this post


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

Share this post


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

Share this post


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

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 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)
    • By 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
    • By 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
    • By Ericles Boanova
      Olá,
      Estou desenvolvendo um Guia de Solução para pessoas que estão com problemas técnicos com seu notebook.
      Basicamente, no meu banco de dados (Mysql) está cadastrado id_pergunta, pergunta, sim e nao.
       
      Ex:
      id_pergunta pergunta sim não 1 Equipamento está carregado? 2 5 2 Equipamento sofreu alguma queda recentemente? 3 4 3 Entre em contato com uma autorizada para verificar se seu equipamnto possui garantia n/a   4 Faça drenagem de energia no equipamento .. .. 5 Entao carregue! .. ...  
      Então, é basicamente este o ponto que estou com dificuldades.
      Preciso transpor esta lógica do banco de dados para o php.
      Terá uma tela onde haverá diversos problemas genéricos (não liga, não da boot, etc) e a partir da seleção de uma dessas opções irá puxar a primeira questão do banco.
      Com base na resposta desta questão, será buscada a próxima questão ou será finalizado, caso o problema seja resolvido.
      Como faço o código php para este caso? para que fique nesse looping até a solução?
       
    • By JurisCode
      Eu criei um código que faz o seguinte:
       
      Ele pega siglas de uma tabela de dados e apresenta apenas as siglas constantes entre as variáveis $origem e $destino.
       
      Depois eu faço um explode e pesquiso cada sigla em outra tabela, procurando o que significa aquela sigla.
       
      Faço um foreach e dentro do foreach um select na tabela que tem o significado de cada sigla (tabela cidades)
       
      peço para imprimir na tela, mas imprime só o último resultado. Onde como faço para aparecer todos?
      if ($_COOKIE['user'] == 0) { ?> <!-- parte que vaia aparecer quando o usuário não estiver logado --> <?php  }  elseif ($_COOKIE['user'] > 0 && $origem == " " && $destino == " ")  { ?> <!-- Esta parte vai aparecer só quando o usuário estiver logado. vAI CRIAR UM FORMULÁRIO DE BUSCA-->     <section id='about' class="s-about">         <div class="row section-header has-bottom-sep" data-aos="fade-up">             <div class="col-full">                 <h3 class="subhead subhead--dark">PROCURAR CARONAS</h3>                 <h1 class="display-1 display-1--light">Você está procurando uma carona</h1>             </div>         </div> <!-- end section-header -->         <div class="row about-desc" data-aos="fade-up">             <div class="col-full">                 <p>                 No formulário abaixo selecione as cidades de origem e de destino - O sistema vai identificar qual a direção em que você está pretendendo ir e vai listar as rotas possíveis.                 </p>         <p align="center"> <?php $sql = 'SELECT id, sigla, cidade FROM cidades order by cidade'; $result = $conn->query($sql); echo '<form method=get action="#about"><SELECT name="origem" style="font-size: 25px; font-weight: bold; display: inline-block;">'; if ($result->num_rows > 0) {     while($row = $result->fetch_assoc()) {         echo '<OPTION value="' . $row["sigla"]. '">' . $row["cidade"] . '</option>';               }} else {               echo "0 results";               }               echo '</select> | '; $result = $conn->query($sql); echo '<SELECT name="destino" style="font-size: 25px; font-weight: bold; display: inline-block;">'; if ($result->num_rows > 0) {     while($row = $result->fetch_assoc()) {         echo '<OPTION value="' . $row["sigla"]. '">' . $row["cidade"] . '</option>';               }} else {               echo "0 results";               }               echo '</select> <Input type="submit" value="Procurar"> </form>'; ?>             </div>         </div> <!-- end about-desc -->          <!-- end about-stats -->         <div class="about__line"></div>     </section> <!-- end s-about -->       </p> <!-- Final da parte de procurar caronas --> <?php  } elseif (!empty($_GET['origem']) && !empty($_GET['destino'])) { <!-- ESTA PARTE É O RESULTADO DA BUSCA FEITA PELO FORMUÁRIO --> $origem = $_GET['origem']; $destino = $_GET['destino']; $sql = "SELECT * FROM rotas WHERE rota LIKE '%$origem%$destino%' limit 2"; $result = $conn->query($sql); echo utf8_encode('<section id=about" class="s-about"> <div class=col-full> <P>A descrição do trajeto abaixo apresenta TODA A LINHA. Para escolher a melhor linha, observe a partir do seu ponto de partida. Caso queira, você pode ainda clicar em cada rota para ver por onde cada rota passa</p>'); if ($result->num_rows > 0) {     while($row = $result->fetch_assoc()) {         echo '<p style="background-color: #000000; color: #FFFFFF;">' . utf8_encode($row['descricao']) . ' - ';         $rotatotal = $row['rota'];         $positioni = mb_strpos($rotatotal, $origem);         $positionf = mb_strpos($rotatotal, $destino);         $totalstr = mb_strlen($rotatotal);         $rotaescol = mb_substr($rotatotal, $positioni, $positionf - $positioni + 2);         $rotarray = explode(' ', $rotaescol);         foreach($rotarray as $ct);         {         $sql2 = "SELECT * FROM cidades WHERE sigla = '$ct'";         $rescit = $conn->query($sql2);         if ($rescit->num_rows > 0) {         while($row2 = $rescit->fetch_assoc()) {         echo ' - '. $row2['cidade'];         }}         else{         echo '';         }         }}}               } else {               echo '<section id="about" class="s-about">0 resultsNão era para estar aparecendo isto."</section>';               }               echo '</div></section> | '; <!-- FINAL DO SCRIPT -->  
×

Important Information

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