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!!!
Popularity: 24% [?]
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!
grande adeilton,
creio que essa semana ainda estarei colocando uma dica sobre esse assunto mesmo e ainda melhor.
grande abraço.
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
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
Valeu Marquinho exelente…
Tanto no recordset quanto programado na unha mesmo
para zebrar faça isso, coloque a x=0 e no outro x=1