Jump to content
Fórum Script Brasil
  • 0

Cores Alternadas


Naty_Za
 Share

Question

Pessoal, tenho um sisteminha de noticias...

aqui ele exibe a data e o titulo de todas as noticias do banco..

<?
$consulta = mysql_query("SELECT * FROM noticias ORDER BY id DESC") or die (mysql_error());
while($verifica = mysql_fetch_array($consulta)){ 
$id = $verifica["id"];
$data = $verifica["data"];
$titulo = $verifica["titulo"];
$noticia = $verifica["noticia"];
$fonte = $verifica["fonte"];

echo"<font face=Verdana, Arial, Helvetica, sans-serif><font size=1>$data - 
<a href=\"noticias_action.php?id=$id\"><b>$titulo</b></a><br></font>
<hr>";
}
?>

eu queria saber, como fazer pra que as noticias fossem mostradas em linhas com cores alternadas..

ex:

1ª linha azul,

2ª linha branca

3ª linha azul

4ª linha branca

e por aí vai...

já vi algumas explicações a esse respeito, mas não consegui implantar no meu código!!

Me ajudem, pls!!

Valeewww

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

pra começar você precisaria usar um FOR ao invés desse WHILE, porque tu precisa sabe em que linha ele estah... ficaria algo assim

$consulta = mysql_query("SELECT * FROM noticias ORDER BY id DESC") or die (mysql_error());
$n = mysql_numrows($consulta);
for($i=0; $i < $n; $i++) {
/*aqui vai a escolha da cor */
if ( ($i % 2) == 0 ) //se for linha par... tipo linha 0, 2, 4, 6, etc
  $bg = "#FFFFFF"; //branco
else
  $bg = "#00BFFF"; //azul claro

$id = $verifica["id"];
$data = $verifica["data"];
$titulo = $verifica["titulo"];
$noticia = $verifica["noticia"];
$fonte = $verifica["fonte"];

echo"<td bgcolor=\"$bg\"><font face=Verdana, Arial, Helvetica, sans-serif><font size=1>$data -
<a href=\"noticias_action.php?id=$id\"><b>$titulo</b></a><br></font></td>
<hr>";
}

bom coloquei o <td> porque não lembro se o <a> possui a propriedade bgcolor... é que só uso CSS, então me desculpe...

mas a logica é essa...

abraço

Link to comment
Share on other sites

  • 0

Ou para simplificar o código... antes do laço coloca $zebra=0;

No início do laço coloca:

$cor = ($zebra % 2 == 0) ? '#FFFFFF"' : '#00BFFF';

No fim do laço coloca $zebra++;

ai você usa $cor para definir a cor que você quiser...

Link to comment
Share on other sites

  • 0

oi pessoal.. valeu pela ajuda de vocês!!!!!!!!!!!!!!!!!!!

eu fiz como o ESerra disse e deu certo.. meu código ficou assim então:

<?
$consulta = mysql_query("SELECT * FROM noticias ORDER BY id DESC") or die (mysql_error());

$zebra=0;
while($verifica = mysql_fetch_array($consulta)){ 
$cor = ($zebra % 2 == 0) ? '#FFFFFF"' : '#00BFFF';
$id = $verifica["id"];
$data = $verifica["data"];
$titulo = $verifica["titulo"];
$noticia = $verifica["noticia"];
$fonte = $verifica["fonte"];
$zebra++;

echo"<td bgcolor=\"$cor\">
<font face=Verdana, Arial, Helvetica, sans-serif><font size=1>$data - 
<a href=\"noticias_action.php?id=$id\"><b>$titulo</b></a><br></font>
<hr>";
}
?>

só que o problema é que está uma linha do lado da outra... e eu gostaria que ficasse na vertical, uma embaixo da outra...

como posso fazer???????????

valeu!!!!!!!!!!!!!!! :-)

Edited by Naty_Za
Link to comment
Share on other sites

  • 0

é por causa do <td> ... acho que vai ter que usar table... ou a tag style no <a>

com a tag style ficaria na linha do echo...

echo"<font face=Verdana, Arial, Helvetica, sans-serif><font size=1>$data -
<a style=\"background-color:$cor; padding: 2 2;\" href=\"noticias_action.php?id=$id\"><b>$titulo</b></a><br></font>
<hr>";

mas eu sinceramente recomendo usar table... usando style você também vai precisar do padding ... table deveria ser usado em casos como esse, na minha opinião...

Link to comment
Share on other sites

  • 0

Ou, para seguir seu próprio código:

<?
$consulta = mysql_query("SELECT * FROM noticias ORDER BY id DESC") or die (mysql_error());

$zebra=0;
while($verifica = mysql_fetch_array($consulta)){
$cor = ($zebra % 2 == 0) ? '#FFFFFF"' : '#00BFFF';
$id = $verifica["id"];
$data = $verifica["data"];
$titulo = $verifica["titulo"];
$noticia = $verifica["noticia"];
$fonte = $verifica["fonte"];
$zebra++;

echo"<tr><td bgcolor=\"$cor\">
<font face=Verdana, Arial, Helvetica, sans-serif><font size=1>$data -
<a href=\"noticias_action.php?id=$id\"><b>$titulo</b></a><br></font>
<hr></td></tr>";
}
?>

Perceba que eu abrí um TR antes do TD.

Ele deve estar sendo aberto antes do laço, então você precisará retirá-lo.

Perceba também que não possui </td> e </tr> em seu echo, então eu os coloquei, e sendo assim, você precisará retirá-los também de onde eles estão. (Devem estar logo após o laço)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647.1k
×
×
  • Create New...