Olá pessoal, a dica de hoje é para aqueles que utilizam o Dreamweaver, mas possuem pouco ou nenhum conhecimento sobre programação php.
Quando montamos um recordset no Dreanweaver e exibimos os dados de forma horizontal e temos muitos campos na tabela, por vezes fica complicado associar um dado a outro que está no fim da linha.
Uma boa dica para manter a boa visualização dos dados é zebrar as informações, alternando a cor da linha para cada registro.
vejamos um código simples para isso então.
Crie um recordset no seu Dreamweaver e um comportamento repetir região. [para aqueles que não sabem do que isso se trata, próximos artigos virão
]
O código gerado pelo Dreanweaver será o seguinte.
<?php do { ?>
<tr>
<td><?php echo $row_categorias['cat_id']; ?></td>
<td><?php echo $row_categorias['cat_nome']; ?></td>
</tr>
<?php } while ($row_categorias = mysql_fetch_assoc($categorias)); ?>
É apenas um loop que percorre sua tabela e exibe todos os dados.
Vamos incluir algumas linhas para que ele mude a cor a cada linha de forma alternada [ex. preto, branco, preto, branco]
Logo após o comando do vamos colocar os seguintes códigos:
<?php
do {
if ($x == 1)
{
$bg = “#000000″;
$ft = “#ffffff”;
}
else
{
$bg = “#ffffff”;
$ft = “#000000″;
}
?>
Teremos como nossas auxiliares três variáveis $x, $bg e $ft, a variavel x receberá os valores 0 ou 1, que equivalerá a preto ou branco [nesse caso, vc pode atribuir a cor que preferir] bg pra background e ft pra cor da fonte.
Por padrão a variável $x será iniciada com o valor 0, perguntamos então:
if ($x == 1) [se $x for igual a 1]
teremos os valores #000000 [preto] e #ffffff [branco] atribuídos as variáveis $bg e $ft
$bg = “#000000″;
$ft = “#ffffff”;
Caso o valor de $x não seja = a o numero 1
else
{
$bg = “#ffffff”;
$ft = “#000000″;
}
Os valores são invertidos.
Em bom português: se “x” é igual a 1 então “bg” recebe preto e “ft” recebe branco, se não “bg” recebe branco e “ft” recebe preto. Isso fará a inversão dos valores, teremos então uma linha preta com fonte branca e outra linha branca com fonte preta.
Continuando…
Para o código onde mostrávamos os dados:
<tr>
<td><?php echo $row_categorias['cat_id']; ?></td>
<td><?php echo $row_categorias['cat_nome']; ?></td>
</tr>
Faremos as seguintes modificações:
<tr style=”color:<? echo $ft ?>” bgcolor=”<? echo $bg ?>”>
<td><?php echo $row_categorias['cat_id']; ?></td>
<td><?php echo $row_categorias['cat_nome']; ?></td>
</tr>
Entendeu? Apenas aplicamos na tag <tr> um style com cor = ao valor da variável $ft e um bgcolor [cor de background] com o valor da variável $bg.
Assim as cores serão modificadas à medida que os valores forem modificados nas variáveis.
E pra finalizar.
A ultima parte do código que era:
<?php } while ($row_categorias = mysql_fetch_assoc($categorias)); ?>
Ficará assim:
<?php
if ($x == 0)
$x++;
else
$x = 0;
}
while ($row_categorias = mysql_fetch_assoc($categorias));
?>
Se x for igual a zero [if ($x == 0)]
$x será incrementado [x+1]
Se não [else]
Caso x não seja zero ele será naturalmente 1 nesse caso retornaremos ele para o valor 0 [$x=0]
Isso fará com que o código auterne os valores entre 0 e 1 sempre.
Está pronto nosso código!!!
Aqui está ele completo:
<?php
do {
if ($x == 1)
{
$bg = “#000000″;
$ft = “#ffffff”;
}
else
{
$bg = “#ffffff”;
$ft = “#000000″;
}
?>
<tr style=”color:<? echo $ft ?>” bgcolor=”<? echo $bg ?>”>
<td><?php echo $row_categorias['cat_id']; ?></td>
<td><?php echo $row_categorias['cat_nome']; ?></td>
</tr>
<?php
if ($x == 0)
$x++;
else
$x = 0;
}
while ($row_categorias = mysql_fetch_assoc($categorias));
?>
Bom proveito.
Se você gostou, achou útil ou tem opinião sobre como tornar esse código ainda mais simples é só escrever, de sua opinião ela é fundamental!!!
Sugestões sobre próximos tutoriais também são muito bem vindas!
Felicidade a todos!!!
Adeilton
Valeu Marquinho, já havia aprendido a “zebrar” resultados de pesquisas parecido com o que você apresentou nesse tutorial, porém o seu é melhor ainda.
Continue assim cara!
Vlw!
Marquinh05
grande adeilton,
creio que essa semana ainda estarei colocando uma dica sobre esse assunto mesmo e ainda melhor.
grande abraço.
Evandro Duarte
vou fazer questao de comentar, depois de muuuito tempo tentando fazer essa “coisa” de cores alternadas, enfim encontrei um maneira mais facil de fazer..
valeeeeeeeeeeeeeeeeeeeeu marquin é isso cara
joao vitor
Realmente é bem interessante mas acho complicado, posso fazer dessa forma:
$cor = 0;
while($row = mysql_fetch_array($query)){
switch($cor){
case 0: echo “$row['nome']“; $cor = 1; break;
case 1: echo “$row['nome']“; $cor = 0; break;
}
}
Mais facil e pratico de se usar.
Abraços
wagner
Valeu Marquinho exelente…
Tanto no recordset quanto programado na unha mesmo
cassio
para zebrar faça isso, coloque a x=0 e no outro x=1