Marketing, Novas Mídias e Redes Sociais

Zebrando dados de recordset no Dreamweaver (php)

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!!!

6 comentários em “Zebrando dados de recordset no Dreamweaver (php)”

  • 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

  • Participe, deixe seu comentário!