Ir para conteúdo

POWERED BY:

Arquivado

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

Nukes

[Resolvido] Linhas da tabela com cores alternadas

Recommended Posts

Boa tarde galera!

 

To com um probleminha aqui que tá díficil resolver... O que acontece é o seguinte...

 

Estou fazendo alguns selects no banco de dados, e o resultado desses selects gera uma tabela assim:

erroqd.jpg

 

O código tá da seguinte forma:

 

$row_titulo = 				'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">Obra:</td>
						<td width="79%">'.$titulo.'</td>
						</tr>';

$row_titulo_original = 		'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">Titulo Original:</td>
						<td width="79%">'.$titulo_original.'</td>
						</tr>';


$row_edicao =				'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">Edição:</td>
						<td width="79%">'.$edicao.'</td>
						</tr>';

$row_autor = 				'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">Autor:</td>
						<td width="79%">'.$autor.'</td>
						</tr>';

$row_ano = 					'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">Ano de Publicação:</td>
						<td width="79%">'.$ano.'</td>
						</tr>';

$row_isbn = 					'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">ISBN:</td>
						<td width="79%">'.$isbn.'</td>
						</tr>';


$row_cidade = 					'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">Produção:</td>
						<td width="79%">'.$editora.", ".$cidade.'</td>
						</tr>';


$row_assunto = 					'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">Assunto:</td>
						<td width="79%">'.$assunto.'</td>
						</tr>';		

$row_edicao = 					'<tr bgcolor="'.$cor.'">
						<td width="21%" class="format_col">Edição:</td>
						<td width="79%">'.$edicao.'</td>
						</tr>';	



?>

<table border="0" width="90%" cellpadding="0" cellspacing="0" style="border-collapse: collapse" class="format">

<?php
 	if ($titulo != "") 				{ echo $row_titulo; }
	if ($titulo_original != "")		{ echo $row_titulo_original; } 
	if ($edicao != "")				{ echo $row_edicao; }
	if ($autor != "")				{ echo $row_autor; }
	if ($ano != "")					{ echo $row_ano; } 
	if ($isbn != "")				{ echo $row_isbn; } 
	if ($cidade != "")				{ echo $row_cidade; }
	if ($assunto != "")				{ echo $row_assunto; }
	if ($edicao != "")				{ echo $row_edicao; }
?>

 

O problema, é que quando não tem nenhum dado em tal linha, ela não é mostrada... Aí fica duas linhas seguidas da mesma cor.

 

Alguém tem alguma idéia de como fazer para que independente de quantas linhas apareçam, sempre fique com cores alternadas?

 

Obrigado desde já,

 

Att, Murilo Campaner

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu estava fazendo assim:

 

$cor1 = "#ffffff";
$cor2 = "#f2f2f2";

 

Aí na linha eu colocava assim:

$row_titulo = 				'<tr bgcolor="'.$cor1.'">
						<td width="21%" class="format_col">Obra:</td>
						<td width="79%">'.$titulo.'</td>
						</tr>';

$row_titulo_original = 		'<tr bgcolor="'.$cor2.'">
						<td width="21%" class="format_col">Titulo Original:</td>
						<td width="79%">'.$titulo_original.'</td>
						</tr>';

$row_edicao =				'<tr bgcolor="'.$cor1.'">
						<td width="21%" class="format_col">Edição:</td>
						<td width="79%">'.$edicao.'</td>
						</tr>';

 

Mas aí quando a linha "titulo_original" não é mostrada, por exemplo, as outras duas ficam da mesma cor... >_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nukes, fiz esse código pra você dar uma olhada, talvez resolva seu problema...

 

Só não testei, se tiver algum erro me desculpe. ^^

 

function exibeTabela($consulta)
{
while ($registro = mysql_fetch_row($consulta))
{
   	for ($i=0;$i<=7;$i++)
       {
           switch ($i)
           {
               case 0:
                   $titulo = 'Obra:';
                   break;
               case 1:
                   $titulo = 'Autor Principal:';
                   break;
               case 2:
                   $titulo = 'Autor:';
                   break;
               case 3:
                   $titulo = 'Ano de Publicação:';
                   break;
               case 4:
                   $titulo = 'ISBN:';
                   break;
               case 5:
                   $titulo = 'Produção:';
                   break;
               case 6:
                   $titulo = 'Assunto:';
                   break;
               case 7:
                   $titulo = 'Edição:';
                   break;
           }

           if ($registro[$i] != '')
           {
           	echo  '<tr bgcolor="'.$cor.'">'
                     .'<td width="21%" class="format_col">'.$titulo.'</td>'
                     .'<td width="79%">'.$registro[$i].'</td>'
                     .'</tr>';

               if ($cor == $cor1)
               	$cor = $cor2;
           	else
               	$cor = $cor1;
           }
       }
   }
}

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Nukes, o bom nesses casos é utilizar o módulo (%), nao precisa de .js, no proprio php você fez, segue um exemplo abaixo:

 

<?php
   $dados = array(
               'id' => 2, 
               'paginas' => '', 
               'autor' => 'Andre da Silva Severino', 
               'url' => 'http://andrewd.com.br', 
               'email' => 'andre@email.com', 
               'telefone' => '(19) 4444-3333'
           );

   echo '<table width="100%" border="1">';

   $i=0;

   foreach ( $dados as $k=>$v ) {

       if ( !empty($v) ) {
           $bg = ( $i % 2 ) ? 'bgcolor="#EEEEEE"' : ''; // módulo 

           echo '<tr '.$bg.'>';
               echo '<td width="10%">'.$k.'</td>';
               echo '<td width="90%">'.$v.'</td>';
           echo '</tr>';
           $i++; 
       }

   }

   echo '</table>'; 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia galera!!!

 

Obrigado todo mundo pelas respostas...

 

Conseguiii resolver o problema com o código que o André postou, fikou perfeito, era isso mesmo!

 

Kra, consegui dormir ontem pela sua ajuda! ahhahaha

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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