Nukes 0 Denunciar post Postado Julho 15, 2011 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: 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
Andrey Knupp Vital 136 Denunciar post Postado Julho 15, 2011 Poste como você está fazendo a variação de cor Compartilhar este post Link para o post Compartilhar em outros sites
Nukes 0 Denunciar post Postado Julho 15, 2011 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
sephiras 0 Denunciar post Postado Julho 15, 2011 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
KMRodrigo 1 Denunciar post Postado Julho 15, 2011 http://maujor.com/tutorial/altrow.php esse é um modo simples e funcional amigo cada "giro" do while cria quantas linhas? (tipo em um unico giro sem repetir) Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Julho 15, 2011 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
Nukes 0 Denunciar post Postado Julho 16, 2011 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