marlongb 0 Denunciar post Postado Junho 11, 2012 Galera,sou bem iniciante no PHP e me apresentei com o seguinte problema. Tenho a tabela abaixo, gerada por uma consulta, e a variavel $tipo recebe apenas 3 valores "N.O","C.O","R.V".O que pretendo fazer é o seguinte, a linha da tabela que receber a variavel $tipo='N.O' vai ser cor vermelho, a que for $tipo='C.O' vai ser cor verde, e assim por diante. <?php $procura = mysql_query("SELECT * FROM ocorrencia ORDER BY protocolo DESC"); echo "<table id='consulta' width='930px' cellpadding='0' cellspacing='0' border='0'>"; echo "<tr>"."<td class='sumir' width='15px'>ID</td>"; echo "<td class='tconsulta' width='120px'>Protocolo</td>"; echo "<td class='tconsulta' width='50px'>Tipo</td>"; echo "<td class='tconsulta' width='70px'>Usuário</td>"; echo "<td class='tconsulta' width='120px'>Cliente/Empresa</td>"; echo "<td class='tconsulta' width='400px'>Assunto</td>"; echo "</tr>"; while($res = mysql_fetch_array($procura)){ echo "<tr onclick=location.href='edit_oco.php?id=".$res['id'] ."'><td class='sumir'>" .$res['id']."</td>"; $tipo=$res['tipo']; echo "<td >" .$res['protocolo']."</td>"; echo "<td >" .$tipo ."</td>"; echo "<td >" .$res['usuario']."</td>"; echo "<td >" .$res['cliente']."</td>"; echo "<td >" .$res['assunto']."</td>"; echo "</a></tr>"; } if ($tipo=='N.O'){ echo "<style type='text/css'>#consulta tr{background-color:red;}</style>"; } if ($tipo=='C.O'){ echo "<style type='text/css'>#consulta tr{background-color:green;}</style>"; } if ($tipo=='R.V'){ echo "<style type='text/css'>#consulta tr{background-color:blue;}</style>"; } echo "</table>"; ?> O problema que ele entra em uma condição, e simplesmente da a cor da primeira condição pra todas as linhas, ele não esta entrando nas outras condições.( os IF funcionam separadamente,mas em conjunto não¬¬) Sei que é erro de lógica, mas não consegui solucionar :/ alguem poderia dar uma ajuda ? Compartilhar este post Link para o post Compartilhar em outros sites
Wesley David 20 Denunciar post Postado Junho 11, 2012 Colega verifica se é assim que você precisa, o IF estava fora do loop então pegava a última ocorrência do resultado, já que você precisa colorir a linha pode adicionar o style dentro do <tr> e antes de terminar o </tr> você fecha a tag </a> que não é aberta e mesmo se fosse estaria sendo fechada no lugar errado, fiz umas alterações confira se é isto que precisa echo "<table id='consulta' width='930px' cellpadding='0' cellspacing='0' border='0'>"; echo "<tr>"."<td class='sumir' width='15px'>ID</td>"; echo "<td class='tconsulta' width='120px'>Protocolo</td>"; echo "<td class='tconsulta' width='50px'>Tipo</td>"; echo "<td class='tconsulta' width='70px'>Usuário</td>"; echo "<td class='tconsulta' width='120px'>Cliente/Empresa</td>"; echo "<td class='tconsulta' width='400px'>Assunto</td>"; echo "</tr>"; while($res = mysql_fetch_array($procura)){ $tipo=$res['tipo']; switch($tipo){ case 'N.O': $cor='red'; break; case 'C.O': $cor='green'; break; case 'R.V': $cor='blue'; break; } echo "<tr style='color: $cor;' onclick=location.href='edit_oco.php?id=".$res['id'] ."'><td class='sumir'>" .$res['id']."</td>"; echo "<td >" .$res['protocolo']."</td>"; echo "<td >" .$tipo ."</td>"; echo "<td >" .$res['usuario']."</td>"; echo "<td >" .$res['cliente']."</td>"; echo "<td >" .$res['assunto']."</td>"; echo "</tr>"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
marlongb 0 Denunciar post Postado Junho 11, 2012 Perfeito, funcionou certinho, não tinha pensando em usar o switch, muito obrigado :clap: Compartilhar este post Link para o post Compartilhar em outros sites